前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android从零单排系列二十二】《Android视图控件——GridView》

【Android从零单排系列二十二】《Android视图控件——GridView》

作者头像
再见孙悟空_
发布2023-07-17 20:27:43
3530
发布2023-07-17 20:27:43
举报

前言

小伙伴们,在上文中我们介绍了Android视图组件ExpandableListView,本文我们继续盘点,介绍一下视图控件的GridView。

一 GridView基本介绍

GridView是一个在Android中常用的布局控件,它可以以网格形式展示数据,类似于表格或者矩阵。GridView可以按照指定的行数和列数将数据显示在多个单元格中,使得数据呈现出规律的排列方式。

GridView通过Adapter来提供数据,并且可以自定义每个单元格的布局。用户可以自定义Adapter来适配各种数据源,并为每个单元格设置不同的视图样式和内容。

GridView还支持交互操作,例如点击单元格进行响应事件,滚动显示大量数据等。

二 GridView使用方法

在 XML 布局文件中添加 GridView:

代码语言:javascript
复制
<GridView
    android:id="@+id/gridView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:numColumns="3" 
    />

准备数据源:为 GridView 提供数据。通常情况下,你可以使用一个适配器(Adapter)来管理数据。

代码语言:javascript
复制
List<String> dataList = new ArrayList<>(); // 数据列表

// 添加数据
dataList.add("Item 1");
dataList.add("Item 2");
dataList.add("Item 3");
// 添加更多数据...

创建适配器(Adapter):创建一个适配器类,并继承自 BaseAdapter 类,实现必要的方法以提供数据和视图绑定。

代码语言:javascript
复制
public class MyGridAdapter extends BaseAdapter {

    private List<String> dataList;
    private Context context;

    public MyGridAdapter(Context context, List<String> 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 来显示数据。

代码语言:javascript
复制
<!-- grid_item_layout.xml -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/itemTextView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:padding="10dp"
    />

在代码中设置适配器:

代码语言:javascript
复制
// 获取 GridView
GridView 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常见属性及方法

常见属性:

  1. numColumns:设置GridView的列数。
  2. stretchMode:设置当行中所有单元格不足一行时,如何拉伸填充空白区域。
  3. columnWidth:设置每列的宽度。
  4. horizontalSpacing:设置水平方向上单元格之间的间距。
  5. verticalSpacing:设置垂直方向上单元格之间的间距。
  6. gravity:设置单元格内容的对齐方式。

常见方法:

  1. setAdapter(Adapter adapter):设置GridView的数据适配器。
  2. setOnItemClickListener(AdapterView.OnItemClickListener listener):设置单元格点击事件监听器。
  3. setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener):设置单元格长按事件监听器。
  4. smoothScrollToPosition(int position):平滑地将GridView滚动到指定位置。
  5. getFirstVisiblePosition():获取当前可见的第一个单元格的位置。
  6. getLastVisiblePosition():获取当前可见的最后一个单元格的位置。

四 总结

总之,GridView是Android开发中常用的用于展示数据的布局控件,特点是可以将数据按照网格形式展示,并支持自定义布局和交互操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一 GridView基本介绍
  • 二 GridView使用方法
  • 三 GridView常见属性及方法
  • 四 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档