控件 -- GridView

一、概念

網(wǎng)格展示控件。

二、使用

1.基本屬性

android:numColumns="auto_fit" 列數(shù)設(shè)置為自動(dòng)
android:columnWidth="90dp" 每列的寬度,也就是Item的寬度
android:stretchMode="columnWidth" 縮放與列寬大小同步
android:verticalSpacing="10dp" 垂直邊距
android:horizontalSpacing="10dp" 水平邊距

2.例子

//activity_grid_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    android:orientation="vertical">

    <GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:columnWidth="90dp"
        android:horizontalSpacing="6dp"
        android:numColumns="auto_fit"
        android:stretchMode="columnWidth"
        android:verticalSpacing="6dp"></GridView>

</LinearLayout>
 
//item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="10dp">

    <ImageView
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:src="@mipmap/ic_launcher" />
    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="6dp"
        android:text="@string/app_name"
        android:textColor="#FFF" />
</LinearLayout>

//Activity
public class GridViewActivity extends AppCompatActivity {
    private GridView gridView;
    private List<Map<String, Object>> data_list;
    private SimpleAdapter adapter;
    private int[] icons = {R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher
            , R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher
            , R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher
            , R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher
            , R.mipmap.ic_launcher, R.mipmap.ic_launcher, R.mipmap.ic_launcher};
    private String[] text = {"111", "222", "333", "444", "555", "666", "777", "888", "999", "000", "123", "234", "345", "456", "555"};

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grid_view);

        gridView = (GridView) findViewById(R.id.gridView);
        data_list = new ArrayList<Map<String, Object>>();
        getData();
        //加載適配器
        String[] form = {"image", "text"};
        int[] to = {R.id.image, R.id.text};
        adapter = new SimpleAdapter(this, data_list, R.layout.item, form, to);
        gridView.setAdapter(adapter);
        //監(jiān)聽item每一項(xiàng)
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(GridViewActivity.this, "你點(diǎn)擊了第" + i, Toast.LENGTH_SHORT).show();
            }
        });
    }

    //準(zhǔn)備數(shù)據(jù)源
    public List<Map<String, Object>> getData() {

        for (int i = 0; i < icons.length; i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("image", icons[i]);
            map.put("text", text[i]);
            data_list.add(map);
        }
        return data_list;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 概述 GridView是Android的另一個(gè)列表容器,用法也跟ListView類似,它的布局是一個(gè)網(wǎng)格,一行可以...
    IT_xiao小巫閱讀 2,298評(píng)論 0 13
  • 本期主要內(nèi)容 1: 什么是GridView。2: GridView的使用方法。3: GridView的內(nèi)部原理。4...
    AKyS佐毅閱讀 56,591評(píng)論 1 22
  • 文/程序員男神 前言 今天又是周五了,大家可以休息一下了,我也結(jié)束這周在常州的出差之旅。下周繼續(xù)來這里學(xué)習(xí)公司產(chǎn)品...
    程序猿男神閱讀 5,681評(píng)論 0 4
  • 一、Android學(xué)習(xí)API指南: 1.應(yīng)用的組成部分AppComponents 1.1.應(yīng)用的基本原理AppFu...
    白話徐文濤閱讀 2,107評(píng)論 0 11
  • 最近都沒有堅(jiān)持,對(duì)自己說對(duì)不起啊。 其實(shí),想寫東西好久了,之前一直瞎忙。 最近想了好多,比如到底旅行的意義在哪里?...
    咸魚老爹閱讀 221評(píng)論 0 1

友情鏈接更多精彩內(nèi)容