ListView详解0

ListView常用方法总结

1、listview拖动变黑解决方法

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

这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919.

如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。最后就不回出现上面所说的你不想要的结果了。

1.、listview在拖动的时候背景图片消失变成黑色背景。等到拖动完毕我们自己的背景图片才显示出来。

2 、listview的上边和下边有黑色的阴影。

3、lsitview的每一项之间需要设置一个图片做为间隔。

针对以上问题 在listview的xml文件中设置一下语句。

问题1 有如下代码结解决 android:scrollingCache="false"

问题2 用如下代码解决:android:fadingEdge="none"  
问题3  用如下代码解决:  android:divider="@drawable/list_driver"  其中  @drawable/list_driver 是一个图片资源

2、自定义ListView行间的分割线

Android平台中系统控件提供了灵活的自定义选项,所有基于ListView或者说AbsListView实现的widget控件均可以通过下面的方法设置行间距的分割线,分割线可以自定义颜色、或图片。

 在ListView中我们使用属性   android:divider="#FF0000" 定义分隔符为红色,当然这里值可以指向一个drawable图片对象,如果使用了图片可能高度大于系统默认的像素,可以自己设置高度比如6个像素   android:dividerHeight="6px" ,在Java中ListView也有相关方法可以设置。


属性名称


描述


android:choiceMode


规定此ListView所使用的选择模式。缺省状态下,list没有选择模式。

属性值必须设置为下列常量之一: none,值为0,表示无选择模式;

singleChoice,值为1,表示最多可以有一项被选中;

multipleChoice,值为2,表示可以多项被选中。

可参看全局属性资源符号choiceMode。


android:divider


规定List项目之间用某个图形或颜色来分隔。可以用"@[+] [package:]type:name"或者"?[package:][type:]name"(主题属性)的形式来指向某个已有资源;也可以用"#rgb","#argb","#rrggbb"或者"#aarrggbb"的格式来表示某个颜色。

可参看全局属性资源符号divider。


android:dividerHeight


分隔符的高度。若没有指明高度,则用此分隔符固有的高度。必须为带单位的浮点数,如"14.5sp"。可用的单位如px(pixel像素),dp(density-independent pixels 与密集度无关的像素), sp(scaled
pixels based on preferred font size 基于字体大小的固定比例的像素), in (inches英寸), mm (millimeters毫米)。

可以用"@[package:]type:name

"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

可参看全局属性资源符号dividerHeight。


android:entries


引用一个将使用在此ListView里的数组。若数组是固定的,使用此属性将比在程序中写入更为简单。

必须以"@[+][package:]type:name"或者 "?[package:][type:]name"的形式来指向某个资源。

可参看全局属性资源符号entries。


android:footerDividersEnabled


设成flase时,此ListView将不会在页脚视图前画分隔符。此属性缺省值为true。

属性值必须设置为true或false。

可以用"@[package:]type:name

"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

可参看全局属性资源符号footerDividersEnabled。


android:headerDividersEnabled


设成flase时,此ListView将不会在页眉视图后画分隔符。此属性缺省值为true。

属性值必须设置为true或false。

可以用"@[package:]type:name

"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

可参看全局属性资源符号headerDividersEnabled。

3、listview中的常用布局样式

android.R.layout.simple_list_item_1   一行text 

android.R.layout.simple_list_item_2
--里面有两个text,一个可以当做title,一个可以当做内容

SimpleAdapter adapter = new SimpleAdapter(this, data1,android.R.layout.simple_list_item_2,
                                       new String[]{"num","value"}, new int[]{android.R.id.text1,android.R.id.text2});

android.R.layout.simple_list_item_single_choice   单选按钮

listView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_single_choice, data));
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //单选按钮样式也可以设置为多选

android.R.layout.simple_list_item_multiple_choice   多选按钮 

listView.setAdapter(new ArrayAdapter<String>(this,
        android.R.layout.simple_list_item_multiple_choice, data));

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);//多选按钮样式也可设置单选行为

android.R.layout.simple_list_item_checked   打钩的样式

listView.setAdapter(new ArrayAdapter<String>(this,
                                android.R.layout.simple_list_item_checked, data));
                listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
时间: 2024-11-03 11:59:43

ListView详解0的相关文章

Android ListView详解_Android

ListView 控件可使用四种不同视图显示项目.通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本. 可使用 ListView 控件将称作 ListItem 对象的列表条目组织成下列四种不同的视图之一:1.大(标准)图标2.小图标3.列表4.报表 View 属性决定在列表中控件使用何种视图显示项目.还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示.另外,还可管理列表中项目的排序方法和选定项目的外观. 由于google doc 很多人都打不开,故更新了

对话框详解0

对话框是人机交互的重要组成部分,android中使用AlertDialog.Builder类来创建对话框,本文详解了各种对话框的创建方法: ps:本文采用activity托管的方式来创建对话框,即使用onCreateDialog方法来创建.当调用Activity类的showDialog方法时,系统会调用onCreateDialog方法来返回一个dialog,即showDialog将参数传进onCreateDialog方法.如果使用一般的创建方法,则和程序方法里面的做法相同. main.xml布局

pp列表之分组ListView详解_Android

吸引用户的眼球,是我们至死不渝的追求:第一时间呈现最有价值的信息,简明大方,告诉客户,你的选择是多么的明智,这正是你寻觅已久的东西. 分组的应用场合还是很多的,有数据集合的地方往往要分组显示:分组的形式也很多,最常见的就是镶嵌在列表中,网上说的很多ExpandListView的也是一种.Android自带的通讯录中的联系人是按照拼音首字母(A,B,C,D......)分组分类的,效果如下: 我们今天也是要实现这样类似的一个效果.1.样本数据:为了突出重点,直击要点,这里提供一个整理好的数据样本:

ListView详解3

三.SimpleAdapter SimpleAdapter可以自定义拓展listview. 使用simpleAdapter的数据用一般都是HashMap构成的List,list的每一节对应ListView的每一行.HashMap的每个键值数据映射到布局文件中对应id的组件上.因为系统没有对应的布局文件可用,我们可以自己定义一个布局vlist.xml.下面做适配,new一个SimpleAdapter参数一次是:this,布局文件,HashMap的 title 和 info,img.布局文件的组件i

ListView详解4

四.BaseAdapter BaseAdapter是一个公共基类适配器,直接提供相关控件的数据提供. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:

ListView详解5

五.本次要讲的是一个listview的进阶效果,主要实现的功能是,单击显示的item时,会显示出一个大图,以突出效果,即抽屉效果的ListView.效果如下所示: 其主要实现思路是:在getView的时候,动态修改布局,将选中的item添加新的View,这样就做到了点击的时候,与其他的item不同的效果. 代码如下: public class MainActivity extends ListActivity { DrawListAdapter adapter; int[] imgs={R.dr

c++ builder中的 XMLDocument 类详解(0) - xml 语法提示

1.忽略空白2.注释: <!-- -->3.指令: <? ?>4.特殊字符: < > ' " &  替代: < > &apos; " &5.二进制数据: <![CDATA [...]]>6.区分大小写7.标记不能交叠8.单标记, 也就是空元素, 如: <node/>, 只用属性记录数据9.属性值在引号内10.xml 中的元素与属性的名字, 必须以字母或 _ 开头, 后面可以是字母.数字或 _

TabHost详解0

一.TabHost是一个选项卡容器,通过标签页将多个Activity整合到一起. TabHost的三要素为:TabWidget.FrameLayout.List<TabSpec>. 其主要的使用方式有两种: 1.继承TabActivity,结合对应的xml配置文件导入tab选项内容体   2.继承Activity,结合拥有TabHost标签的xml配置文件导入 第一种方式: <?xml version="1.0" encoding="utf-8"?

Toast使用详解0

Toast是Android中常用的提示工具. Toast的常用使用方法有两种:使用系统默认的Toast 或者是自定义的Toast. 其效果如下: 主程序: public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activit