`
zyoo005
  • 浏览: 19147 次
  • 性别: Icon_minigender_1
  • 来自: 内蒙古
社区版块
存档分类
最新评论

android ListView几个比较特别的属性

阅读更多

 

由于这两天在做listView的东西,所以整理出来一些我个人认为比较特别的属性,通过设置这样的属性可以做出更加美观的列表

首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和false

android:stackFromBottom="true"             

第二是 transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。
 android:transcriptMode="alwaysScroll"    

第三cacheColorHint属性,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果。

如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了

第四divider属性,该属性作用是每一项之间需要设置一个图片做为间隔,或是去掉item之间的分割线

 android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源,如果不想显示分割线则只要设置为android:divider="@drawable/@null" 就可以了

第五fadingEdge属性,上边和下边有黑色的阴影

android:fadingEdge="none" 设置后没有阴影了~

 第五scrollbars属性,作用是隐藏listView的滚动条,

android:scrollbars="none"与setVerticalScrollBarEnabled(true);的效果是一样的,不活动的时候隐藏,活动的时候也隐藏

第六fadeScrollbars属性,android:fadeScrollbars="true"  配置ListView布局的时候,设置这个属性为true就可以实现滚动条的自动隐藏和显示。

 

 

 

android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。

列表的显示需要三个元素:

1.ListVeiw:用来展示列表的View。

2.适配器:用来把数据映射到ListView上的中介。

3.数据:具体的将被映射的字符串、图片,或者基本组件。

根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter
其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各种效果。 SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。

一、
ArrayAdapter代码详解

首先在布局文件main.xml中定义ListView标签:


<ListView


android:id="@+id/listview"


android:layout_width="fill_parent"


android:layout_height="wrap_content"


/>

代码实现:

public
class ArrayAdapterList extends Activity {


/** Called whenthe activity is first created. */


@Override


public
void onCreate(BundlesavedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.
main);


ListView listView = (ListView)findViewById(R.id.
listview);


//定义一个数组


String[] arr = {
"忘情水","冰雨","一起走过的日子"};


//将数据封装到ArrayAdapter


ArrayAdapter<String> arrayAdapter = 
newArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr);


//为ListView设置Adapter


listView.setAdapter(arrayAdapter);


}

}

上面代码使用了ArrayAdapter(Context context, int textViewResourceId, T[]objects)来装配数据,要装配这些数据就需要一个连接ListView视图对象和数组数据的适配器来完成两者的适配工作,ArrayAdapter的构造需要三个参数,依次为this,布局文件(注意这里的布局文件描述的是列表的每一行的布
局,android.R.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字,数据源(一个数组)。同时用setAdapter()完成适配的最后工作。

textViewResourceId该参数决定每个列表项的外观形式,Android为该属性提供了如下属性值:

simple_list_item_1:每个列表项都是一个普通的TextView

simple_list_item_2:每个列表项都是一个普通的TextView(字体略大)

simple_list_item_multiple_choice:每个列表项都是带多选框的文本

simple_list_item_single_choice:每个列表项都是带多单选按钮的文本

simple_list_item_checked:每个列表项都是一个已勾选的列表项


运行结果: QQ截图20110801184631.png

 

 

二、SimpleAdapter代码详解

simpleAdapter的扩展性最好,可以定义各种各样的布局出来,可以放上ImageView(图片),还可以放上Button(按 钮),CheckBox(复选框)等等。下面的代码都直接继承了ListActivity如果程序的窗口仅仅为了显示一个列表,则可以直接让Activity继承ListActivity来实现,ListActivity的子类无需调用setContentView()来显示某个页面,而是可以直接传入一个AdapterListActivity的子类就呈现出一个列表。

布局文件main.xml;

<?xml version="1.0"encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"


android:orientation="vertical"


android:layout_width="fill_parent"


android:layout_height="fill_parent"


>

<ListView


android:id="@+id/android:list"


android:layout_width="fill_parent"


android:layout_height="wrap_content"


/>

<ImageView


android:id="@+id/header"


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:paddingLeft="10dp"


/>

<TextView


android:id="@+id/name"


android:layout_width="wrap_content"


android:layout_height="wrap_content"


android:paddingLeft="10dp"


/>

</LinearLayout>

在此布局文件中,应包含一个id”@+id/android:list”ListView,此idAndroid系统内置ID

代码实现

public
class SimpleAdapterList extends ListActivity {

/** Called whenthe activity is first created. */


//声明姓名和头像的数组变量


private String [] names = new String[]{"刘德华","张学友","黎明","郭富城"};


private
int[] imageIds = new
int[]{R.drawable.header01,R.drawable.header02,R.drawable.header03,R.drawable.header04};


@Override


public
void onCreate(BundlesavedInstanceState) {


super.onCreate(savedInstanceState);


//创建一个List集合


List<Map<String,Object>> listItems = 
newArrayList<Map<String,Object>>();


for(int i=0; i<names.length;i++){


Map<String,Object> listItem = 
new HashMap<String,Object>();



listItem.put(
"header"imageIds);



listItem.put(
"name"names);



listItems.add(listItem);


}


//创建一个SimpleAdapter


SimpleAdapter simpleAdapter = 
new SimpleAdapter(this, listItems, R.layout.mainnew String[]{"header","name"}, new
int[]{R.id.header,R.id.name});


setListAdapter(simpleAdapter);


}

}

SimpleAdapter参数说明:

SimpleAdapter(Contextcontext, List<? extends Map<String, ?>> data, int resource,String[] from, int[] to)

data:该参数是一个List<? extendsMap<String, ?>>类型的集合对象,该集合中的每个对象生成一个列表项

resource:该参数指定使用的界面布局文件的ID

from:该参数是一个String[]类型的参数,该参数决定提取Map<String,?>对象中那些key对应的value来生成列表项

to:该参数决定使用哪些View组件来组合成一个列表项

 

运行结果: QQ截图20110801184644.png

分享到:
评论

相关推荐

    android listview单击事件

    要实现ListView的单击事件,我们需要以下几个步骤: 1. **创建适配器**:首先,你需要创建一个自定义的Adapter,继承自BaseAdapter或已有的Adapter,如ArrayAdapter。在这个适配器中,你需要重写`getView()`方法,...

    Android listView学习源码.zip

    在Android中,我们通常创建一个继承自BaseAdapter的自定义Adapter,重写其中的几个关键方法: 1. `getCount()`: 返回ListView中条目的数量。 2. `getItem(int position)`: 获取指定位置的项对象,这个对象可以是...

    Android ListView 固定列头源码

    这个类可能扩展了Android原生的ListView,并且添加了一些特定的方法和属性来支持固定列头。它可能包含以下关键部分: 1. **头部视图(Header View)**:这是显示列头的部分,可以是一个独立的LinearLayout或其他...

    Android实现ListView的增删改查Demo

    总结来说,这个"Android实现ListView的增删改查Demo"涵盖了以下几个关键知识点: 1. 数据模型类的设计(如`Word`) 2. SQLite数据库的使用(`SQLiteOpenHelper`子类) 3. 自定义适配器(如`WordAdapter`) 4. ...

    android两列显示两个listview

    在Android开发中,有时我们需要在一个布局中同时展示两个ListView,以实现类似网格或者并排比较的效果。这个场景在处理比如对比列表数据、显示多类别信息等时非常常见。标题"android两列显示两个listview"指的就是...

    Android漂亮的Listview完整版本

    从描述中提到的“经过几天的请教,查找等,艰辛的过程,加上自己的修改,终于实现了自己满意的listview”,我们可以得知开发ListView可能涉及到以下几个阶段: 1. **需求分析**:明确ListView需要展示的数据类型和...

    android listview自定义控件例子

    为了实现一些视觉效果,可以关注以下几个方面: 1. **Item点击效果**:可以通过设置`android:listSelector`属性或在Adapter的`getView()`方法中设置点击监听来实现。 2. **分隔线**:使用`android:divider`和`...

    android中listview多选demo

    在Android的ListView中实现多选,通常涉及到以下几个关键知识点: 1. **CheckedTextView**:这是Android提供的一个内置视图,它继承自TextView,并增加了复选框的功能。在ListView的每个列表项中使用...

    android一个界面多个listview

    在处理一个界面多个ListView的情况时,我们需要关注以下几个关键知识点: 1. **布局管理**:在XML布局文件中,你可以直接添加多个ListView,每个ListView对应不同的数据源和适配器。需要注意的是,由于ListView高度...

    Android ListView实例

    在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。它的高效性和可定制性使得它在各种应用中广泛应用。本实例将探讨如何在ListView中实现性能优化以及如何在ListView的每个Item中设置多行3列...

    ListView案例

    在创建ListView时,我们需要实现以下几个关键部分: 1. 数据源:ListView需要一个数据源来填充列表项。这个数据源可以是ArrayList、ArrayAdapter、CursorAdapter等。例如,我们可能会创建一个ArrayList来存储要显示...

    Android Listview 按钮点击状态错乱之解决方法

    以下是几个解决策略: 1. **复位视图状态**:在`getView()`方法中,确保每个视图在被使用前都恢复到初始状态。这包括设置按钮的默认颜色、背景等属性,确保每次显示的都是未点击状态。 2. **使用 ViewHolder 设计...

    Android ListView 自定义adapter好友列表

    自定义Adapter的步骤主要包括以下几个部分: 1. 创建数据模型类:为好友信息创建一个数据模型类,例如`Friend`,包含姓名、头像URL等属性。 ```java public class Friend { private String name; private String...

    android listview 下拉刷新 上拉翻页 仿新浪微博客户端

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。在移动应用中,为了提供更好的用户体验,下拉刷新和上拉翻页功能已经成为必备特性,尤其在社交媒体应用如新浪微博客户端中更是常见。本篇文章...

    Android 圆角listview

    在Android开发中,"圆角listview"是一个常见的需求,特别是在设计美观且具有现代感的用户界面时。这个概念指的是ListView的每一项(item)显示为具有圆角的视图,提升整体应用的视觉效果。在给定的描述中提到了...

    android-ListView

    首先,ListView的基本使用涉及到以下几个关键部分: 1. **Adapter**:Adapter是连接数据源和ListView的关键桥梁,它负责将数据转化为ListView可以显示的View。在Android中,我们通常会继承BaseAdapter或使用已有的...

    Android_ListView

    ListView的使用通常涉及到以下几个步骤: - 在布局文件中添加ListView控件,设置其ID。 ```xml &lt;ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_...

    android listview 示例源代码

    首先,ListView的基本使用包括以下几个关键步骤: 1. **布局文件配置**:在XML布局文件中添加ListView元素,设定其ID以便在代码中引用。例如: ```xml &lt;ListView android:id="@+id/my_list_view" android:layout_...

    Android ListView常用小技巧汇总

    本文将详细介绍几个Android ListView的常用小技巧,以帮助开发者更好地理解和优化ListView的使用。 首先,我们来看如何为ListView的每一项(Item)设置分隔线。有两种方法: 1. 直接在布局文件中通过`android:...

    android listview控件复用问题解决

    在Android开发中,ListView是一个非常常用的组件,它用于展示大量数据列表。然而,ListView的复用机制虽然提高了性能,但也引入了一些复杂性,特别是在涉及可交互的子视图,如CheckBox时。这个问题主要体现在当用户...

Global site tag (gtag.js) - Google Analytics