目录
前言
小伙伴们,在上文中我们介绍了Android视图组件ExpandableListView,本文我们继续盘点,介绍一下视图控件的GridView。
一 GridView基本介绍
GridView是一个在Android中常用的布局控件,它可以以网格形式展示数据,类似于表格或者矩阵。GridView可以按照指定的行数和列数将数据显示在多个单元格中,使得数据呈现出规律的排列方式。
GridView通过Adapter来提供数据,并且可以自定义每个单元格的布局。用户可以自定义Adapter来适配各种数据源,并为每个单元格设置不同的视图样式和内容。
GridView还支持交互操作,例如点击单元格进行响应事件,滚动显示大量数据等。
二 GridView使用方法
- 在 XML 布局文件中添加 GridView:
- 准备数据源:为 GridView 提供数据。通常情况下,你可以使用一个适配器(Adapter)来管理数据。
List
dataList = new ArrayList<>(); // 数据列表// 添加数据dataList.add("Item 1");dataList.add("Item 2");dataList.add("Item 3");// 添加更多数据... - 创建适配器(Adapter):创建一个适配器类,并继承自 BaseAdapter 类,实现必要的方法以提供数据和视图绑定。
public class MyGridAdapter extends BaseAdapter { private List
dataList; private Context context; public MyGridAdapter(Context context, List dataList) { this.context = context; this.dataList = dataList; } // 实现必要的方法... @Override public int getCount() { return dataList.size(); } @Override public Object getItem(int position) { return dataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(R.layout.grid_item_layout, parent, false); holder = new ViewHolder(); holder.itemTextView = convertView.findViewById(R.id.itemTextView); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } String item = dataList.get(position); holder.itemTextView.setText(item); return convertView; } private static class ViewHolder { TextView itemTextView; }} - 创建 grid_item_layout.xml 布局文件:创建一个布局文件,用于定义 GridView 中每个单元格的样式。例如,可以在布局中放置一个 TextView 来显示数据。
- 在代码中设置适配器:
// 获取 GridViewGridView gridView = findViewById(R.id.gridView);// 创建适配器MyGridAdapter adapter = new MyGridAdapter(this, dataList);// 设置适配器gridView.setAdapter(adapter);// 设置项点击事件监听器gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView> parent, View view, int position, long id) { // 处理项点击事件 }});
三 GridView常见属性及方法
常见属性:
- numColumns:设置GridView的列数。
- stretchMode:设置当行中所有单元格不足一行时,如何拉伸填充空白区域。
- columnWidth:设置每列的宽度。
- horizontalSpacing:设置水平方向上单元格之间的间距。
- verticalSpacing:设置垂直方向上单元格之间的间距。
- gravity:设置单元格内容的对齐方式。
常见方法:
- setAdapter(Adapter adapter):设置GridView的数据适配器。
- setOnItemClickListener(AdapterView.OnItemClickListener listener):设置单元格点击事件监听器。
- setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener):设置单元格长按事件监听器。
- smoothScrollToPosition(int position):平滑地将GridView滚动到指定位置。
- getFirstVisiblePosition():获取当前可见的第一个单元格的位置。
- getLastVisiblePosition():获取当前可见的最后一个单元格的位置。
四 总结
总之,GridView是Android开发中常用的用于展示数据的布局控件,特点是可以将数据按照网格形式展示,并支持自定义布局和交互操作。
来源地址:https://blog.csdn.net/shaoyezhangliwei/article/details/126494024