Scrollview与ListView

编程入门 行业动态 更新时间:2024-10-28 10:27:46

<a href=https://www.elefans.com/category/jswz/34/1758782.html style=Scrollview与ListView"/>

Scrollview与ListView

文章目录

  • 一、简介
  • 二、代码


一、简介

基于QQ、微信等对话框进行的小实验,如下图

效果图:顶部首页通讯字段可横向滑动,列表上下滑动。

二、代码

scrollview.xml:

<LinearLayout xmlns:android=""xmlns:tools=""android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><HorizontalScrollViewandroid:id="@+id/hscrollview"android:layout_width="match_parent"android:layout_height="match_parent"android:scrollbars="none"tools:ignore="MissingConstraints"><LinearLayoutandroid:id="@+id/line1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="首页 "android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="通讯"android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="首页 "android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="通讯"android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="首页 "android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="通讯"android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="首页 "android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="通讯"android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="首页 "android:textColor="@color/white" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="10dp"android:background="@color/purple_500"android:text="通讯"android:textColor="@color/white" /></LinearLayout></HorizontalScrollView><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@+id/line1"></ListView></LinearLayout>

listview_item.xml:

<RelativeLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:layout_margin="15dp"><ImageViewandroid:id="@+id/item_img"android:layout_width="100dp"android:layout_height="100dp"android:src="@drawable/three"/><TextViewandroid:id="@+id/item_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="陆逊"android:layout_toRightOf="@+id/item_img"android:layout_marginLeft="20dp"android:layout_marginTop="20dp"android:textSize="20sp"android:textColor="@color/red"/><TextViewandroid:id="@+id/item_sign"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/item_name"android:layout_alignLeft="@+id/item_name"android:layout_marginTop="20dp"android:text="你愁啥,小心我打你啊!"android:textColor="@color/purple_700"android:textSize="15sp" /></RelativeLayout>

scrollview.java:

private List<ThreeKill> list;private ThreeKill threeKill;private MyAdapter adapter;private ListView listView;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.scrollview);initaction();adapter = new MyAdapter(this, list);listView.setAdapter(adapter);listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {threeKill = list.get(i);Toast.makeText(Scrollview.this, threeKill.getName() + "\n" + threeKill.getSign(), Toast.LENGTH_SHORT).show();}});}/*** 初始化*/private void initaction() {listView = findViewById(R.id.listview);list = new ArrayList<ThreeKill>();list.add(new ThreeKill(R.drawable.three, "曹操", "宁我负天下人,勿让天下人负我。"));list.add(new ThreeKill(R.drawable.three, "曹仁", "宁我负天下人。"));list.add(new ThreeKill(R.drawable.three, "曹植", "宁我负天下人,勿让天下人负我。"));list.add(new ThreeKill(R.drawable.three, "曹爽", "宁我负天下人。"));list.add(new ThreeKill(R.drawable.three, "曹丕", "宁我负天下人,勿让天下人负我。"));list.add(new ThreeKill(R.drawable.three, "赵云", "宁我负天下人。"));list.add(new ThreeKill(R.drawable.three, "张飞", "宁我负天下人,勿让天下人负我。"));list.add(new ThreeKill(R.drawable.three, "关羽", "宁我负天下人。"));list.add(new ThreeKill(R.drawable.three, "吕布", "宁我负天下人,勿让天下人负我。"));list.add(new ThreeKill(R.drawable.three, "刘备", "宁我负天下人。"));list.add(new ThreeKill(R.drawable.three, "马超", "宁我负天下人,勿让天下人负我。"));list.add(new ThreeKill(R.drawable.three, "黄忠", "宁我负天下人。"));}

自定义Adapter继承自BaseAdapter:MyAdapter.java

public class MyAdapter extends BaseAdapter {private Context context;private List<ThreeKill> list;public MyAdapter(Context context, List<ThreeKill> list) {this.context = context;this.list = list;}@Override//填充的item的个数public int getCount() {return list.size();}@Override//指定索引对应的item的数据项public Object getItem(int position) {return null;}@Override//指定索引对应的item的id值public long getItemId(int position) {return 0;}@Override//填充每个item的内容public View getView(int position, View convertView, ViewGroup viewGroup) {View view = null;ViewHolder viewHolder = null;if (view == null){view = LayoutInflater.from(context).inflate(R.layout.listview_item,null);viewHolder = new ViewHolder();viewHolder.img = view.findViewById(R.id.item_img);viewHolder.name = view.findViewById(R.id.item_name);viewHolder.sign = view.findViewById(R.id.item_sign);view.setTag(viewHolder);}else {view = convertView;viewHolder = (ViewHolder) view.getTag();}viewHolder.img.setImageResource(list.get(position).getImg());viewHolder.name.setText(list.get(position).getName());viewHolder.sign.setText(list.get(position).getSign());return view;}
}//存放item中的所有控件
class ViewHolder{ImageView img;TextView name;TextView sign;
}

ThreeKill .java

public class ThreeKill {private int img;private String name;private String sign;public ThreeKill(int img, String name, String sign) {this.img = img;this.name = name;this.sign = sign;}public int getImg() {return img;}public void setImg(int img) {this.img = img;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSign() {return sign;}public void setSign(String sign) {this.sign = sign;}
}

列表的点击事件:

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {threeKill = list.get(i);Toast.makeText(Scrollview.this, threeKill.getName() + "\n" + threeKill.getSign(), Toast.LENGTH_SHORT).show();}});

如图:

还有一些其他的关于滑动的布局及做法,这只是发动布局的最常用的一种。

更多推荐

Scrollview与ListView

本文发布于:2024-02-11 04:07:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1679049.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Scrollview   ListView

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!