GridView所有属性及用法说明并附上代码
时间: 2024-02-02 20:02:27 浏览: 63
GridView是Android中一种常见的布局控件,它将数据以网格的形式展示在屏幕上。下面是GridView的常用属性及用法说明:
1. android:numColumns:设置GridView每行显示的列数。
2. android:stretchMode:设置网格项的拉伸模式,即当GridView的宽度大于所有网格项宽度之和时,如何分配剩余的空间。常用的拉伸模式有:
- none:不拉伸任何网格项,即让GridView居中显示。此时GridView的宽度可能小于所有网格项宽度之和。
- columnWidth:让每个网格项的宽度都相等,且等于GridView的列宽。
- spacingWidthUniform:让每个网格项的宽度都相等,且等于GridView的列宽减去水平方向的间距。
- spacingWidth:让每个网格项的宽度都相等,且等于GridView的列宽减去水平方向的间距的一半。
- auto_fit:让每个网格项的宽度都相等,但不一定等于GridView的列宽,而是根据GridView的宽度自动适应。此时,android:numColumns属性无效。
3. android:horizontalSpacing:设置网格项之间的水平间距。
4. android:verticalSpacing:设置网格项之间的垂直间距。
5. android:padding:设置GridView的内边距,即GridView和网格项之间的距离。
6. android:clipToPadding:设置是否将GridView的内边距作为可见区域,即是否将网格项绘制在内边距的范围内。
7. android:adapter:设置GridView的Adapter,即用于提供网格项数据和视图的适配器。
下面是一个简单的GridView示例代码:
布局文件:
```
<GridView
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="3"
android:stretchMode="columnWidth"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:padding="10dp"
android:clipToPadding="false" />
```
Java代码:
```
GridView gridView = findViewById(R.id.grid_view);
gridView.setAdapter(new MyAdapter());
class MyAdapter extends BaseAdapter {
private List<String> data = Arrays.asList("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9");
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_grid, parent, false);
textView = convertView.findViewById(R.id.text_view);
convertView.setTag(textView);
} else {
textView = (TextView) convertView.getTag();
}
textView.setText(data.get(position));
return convertView;
}
}
```
其中,item_grid.xml是每个网格项的布局文件,内容如下:
```
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="18sp" />
```
这个示例中,GridView每行显示3列,网格项的宽度都相等,且等于GridView的列宽。水平和垂直间距均为10dp,内边距也为10dp。网格项使用了一个TextView来展示数据,适配器提供了9个数据项,即9个网格项。
阅读全文