中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

listview控件怎么設置橫向多個列

小億
244
2023-12-04 14:59:09
欄目: 編程語言

要在ListView控件中設置橫向多個列,可以使用GridView作為ListView的子控件。

以下是一個示例:

activity_main.xml:

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

list_item.xml:

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:columnWidth="100dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"/>

MainActivity.java:

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private List<List<String>> data;

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

        listView = findViewById(R.id.listView);

        // 初始化數據
        data = new ArrayList<>();
        for (int i = 0; i < 20; i++) {
            List<String> row = new ArrayList<>();
            for (int j = 0; j < 3; j++) {
                row.add("Item " + i + "-" + j);
            }
            data.add(row);
        }

        // 設置適配器
        MyAdapter adapter = new MyAdapter(data);
        listView.setAdapter(adapter);
    }

    private class MyAdapter extends BaseAdapter {

        private List<List<String>> data;

        public MyAdapter(List<List<String>> data) {
            this.data = data;
        }

        @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) {
            if (convertView == null) {
                convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.list_item, parent, false);
            }

            GridView gridView = convertView.findViewById(R.id.gridView);
            ArrayAdapter<String> gridAdapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, data.get(position));
            gridView.setAdapter(gridAdapter);

            return convertView;
        }
    }
}

這樣就可以在ListView中顯示橫向多個列的數據了。每個Item使用GridView來顯示多列數據,通過設置GridView的numColumns屬性為auto_fit可以自動根據屏幕大小調整顯示列數。用數組適配器ArrayAdapter來顯示每個格子的數據。

0
许昌市| 兖州市| 肇州县| 石渠县| 邯郸市| 龙游县| 长寿区| 姚安县| 贵定县| 嵩明县| 陕西省| 澄江县| 油尖旺区| 河间市| 桦南县| 宁明县| 子洲县| 彝良县| 东丰县| 青川县| 朝阳县| 堆龙德庆县| 海安县| 义乌市| 周宁县| 潜山县| 云南省| 祥云县| 芦山县| 台东县| 涟源市| 金昌市| 郁南县| 长汀县| 阿克苏市| 香格里拉县| 册亨县| 呈贡县| 大田县| 乐山市| 泰来县|