简介
ListView是一个视图组,显示可滚动项目的列表。
并将每个项目结果转换为放置到列表中的视图。
一般,自定义列表需要与(android.widget.BaseAdapter)配合使用!
属性
xml属性 | 相关方法 | 作用效果 |
---|---|---|
android:divider | setDivider(Drawable) | 可在列表项之间绘制颜色 |
android:dividerHeight | 在列表项之间绘制颜色的高度 | |
android:entries | 引用将填充ListView的数组资源 | |
android:footerDividersEnabled | 当设置为false时,ListView将不会在每个页脚视图之前画出分隔符 | |
android:headerDividersEnabled | 当设置为false时,ListView将不会在每个头部视图之后绘制分隔符 |
简单使用
可以配合(android.widget.ArrayAdapter)进行简单的数据列表显示(构造方法与参数详情):
ArrayAdapter (Context context, int resource)
context(当前上下文)
resource(一个布局文件的资源ID,其中包含一个在实例化视图时使用的TextView)ArrayAdapter (Context context, int resource, int textViewResourceId)
context(当前上下文)
resource(布局文件的资源ID,其中包含在实例化视图时使用的布局)
textViewResourceId(要填充的布局资源中的TextView的id)ArrayAdapter (Context context, int resource, T[] objects)
context(当前上下文)
resource(布局文件的资源ID,其中包含在实例化视图时使用的布局)
objects(在ListView中表示的对象,即 数据源)ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
context(当前上下文)
resource(布局文件的资源ID,其中包含在实例化视图时使用的布局)
textViewResourceId(要填充的布局资源中的TextView的id)
objects(在ListView中表示的对象,即 数据源)ArrayAdapter (Context context, int resource, List objects)
context(当前上下文)
resource(布局文件的资源ID,其中包含在实例化视图时使用的布局)
objects(在ListView中表示的对象,即 数据源)ArrayAdapter (Context context, int resource, int textViewResourceId, List objects)
context(当前上下文)
resource(布局文件的资源ID,其中包含在实例化视图时使用的布局)
textViewResourceId(要填充的布局资源中的TextView的id)
objects(在ListView中表示的对象,即 数据源)
举一个简单的例子:
xml布局:
<ListView
android:id="@+id/xListView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/colorAccent"
android:dividerHeight="1dp"></ListView>
适配数据源:
ListView listView = (ListView) findViewById(R.id.xListView);
String[] data = new String[20];
for (int i = 0; i < 20; i++) {
data[i] = "张-" + i;
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
listView.setAdapter(adapter);
效果图如下:
常用方法
setAdapter(ListAdapter adapter)
匹配这个列表视图的数据addFooterView(View v)或者addFooterView(View v, Object data, boolean isSelectable)
在列表的底部添加一个固定的视图,可以多次添加addHeaderView(View v)或者addHeaderView(View v, Object data, boolean isSelectable)
在列表的顶部添加一个固定的视图,可一次添加,若第二次添加,则第二次添加的使徒不会显示在顶部,而是会排列在第一次添加的顶部布局下smoothScrollToPosition(int position)
滚动到指定的适配器位置removeHeaderView(View v)
删除先前添加的指定头部视图removeFooterView(View v)
删除之前添加的指定页脚视图getFooterViewsCount()
获取列表中页脚视图的数量getHeaderViewsCount()
获取列表中头视图的数量setOnScrollListener( AbsListView.OnScrollListener l)
这是一个继承至(android.widget.AbsListView)的方法,用它来监听视图滚动(每次列表滚动时都会收到通知的监听器)setFriction(float friction)
用于摩擦的摩擦量,即控制滚动条的速度
自定义适配器
自定义的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="wrap_content"
android:orientation="horizontal"
android:paddingBottom="16dp"
android:paddingTop="16dp">
<TextView