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
发布评论