ListView

ListView是一个用于展示垂直滚动列表的视图集合,通过Adapter获取并显示内容。RecyclerView则提供了更流畅的滚动体验。要使用ListView,需要设置ListAdapter,自定义Adapter以个性化每个条目视图,并利用视图复用来提高性能。为了平滑滚动,可以参考官方文档进行优化。使用CursorAdapter可方便地从数据库填充ListView,同时要注意避免阻塞主线程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引:当前可见条目的下标
位置:光标上条目的下标

定义一个垂直滚动的视图集合,列表中的每个视图紧挨着前一个视图。为了更加流行和高效的展示一个列表,使用RecyclerView。

要展示一个列表,可以在布局配置文件引入一个列表view:

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

列表视图是一个AdapterView,不知道细节,如它包含的类型和内容。相反,列表视图从ListAdapter中按需索取,例如用户上下滚动时展示新的视图。

为了展示列表中的条目,调用set(ListAdapter adapter)绑定一个adapter和list。

要展示为了数据集中每个条目更加个性化的视图,实现一个ListAdapter。例如,继承BaseAdapter,然后在getView方法创建和配置每条数据的视图。

private class MyAdapter extends BaseAdapter {
 
       // override other abstract methods here
 
       @Override
       public View getView(int position, View convertView, ViewGroup container) {
           if (convertView == null) {
               convertView = getLayoutInflater().inflate(R.layout.list_item, container, false);
           }
 
           ((TextView) convertView.findViewById(android.R.id.text1))
                   .setText(getItem(position));
           return convertView;
       }
   }

ListView会尝试重用视图对象,以提高性能,并且避免对用户的滚动响应滞后。为了利用这个特性,先检查getView提供的convertView是否为空,在创建和加载一个新的view对象。ListView的平滑滚动可以保证平滑的用户体验。
提高滚动平滑的更多方式:raining/improving-layouts/smooth-scrolling.html
自定义adapter的完整例子:samples/CustomChoiceList/index.html
为用户点击条目添加动作:guide/topics/ui/declaring-layout.html#HandlingUserSelections
学习使用CursorAdapter填充ListView:guide/topics/ui/declaring-layout.html#FillingTheLayout
学习使用cursor怎么避免阻塞主线程:guide/topics/ui/layout/listview.htm

注意,很多例子使用ListActivity和ListFragment展示列表,更随意的好办法是写一个更加通用的Activity和Fragment,把ListView直接加到View树中,这种方法对ListView和Adapter的控制更加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值