listview控件怎么设置横向多个列

   2025-02-13 2820
核心提示:要在ListView控件中设置横向多个列,可以使用GridView作为ListView的子控件。以下是一个示例:activity_main.xml:ListViewandroi

要在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来显示每个格子的数据。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言