一.ListView的一些特殊属性:

1.android:fadingEdge="none" //去掉ListView最上边和最下边黑色的阴影

2.android:scrollbars="none"//隐藏ListView的滚动条

3.android:fadeScrollbars="true"//设置为true就可以实现滚动条的自动隐藏和显示

4.android:dividerHeight="2dip" //两个item之间的距离

5.android:divider="@drawable/driver_bg"//设置item之间分割线的图片资源(Item之间无间隙android:divider="#00000000")

6.android:listSelector="#00000000 "//选中item时的颜色。默认为橙黄底色(依手机系统而定)

7.android:background="@drawable/bg"//指定图片资源为背景色(用到它时,必须使用属性8,去除拖动时黑块)

8.android:cacheColorHint="#00000000"//背景色为透明,防止拖动时黑块

9.android:scrollingCache="false"//去除拖动时ListView背景为黑色

10.android:stackFromBottom="true"//设置为true时,你做好的列表就会显示你列表的最下面

11.android:transcriptMode="alwaysScroll"//当你动态添加数据时,列表将自动往下滚动最新的条目可以自动滚动到可视范围内

12.android:fastScrollEnabled = "true"//ListView出现快速滚动的按钮(至少滚动4页才会显示)

13.android:drawSelectorOnTop="false"//点击某条记录不放,颜色会在记录的后面成为背景色,内容的文字可见(缺省为false)

14.android:headerDividersEnabled="false"//设成flase时,此ListView将不会在页眉视图前画分隔符。缺省值为true(页脚视图同理)

15.android:soundEffectsEnabled="false"//点击和触摸时是否有声音效果,缺省值为true(只有系统设置中开启了触摸提示音才有效)

二. 解决ListView item中含有Button或者Checkable的子类控件点击时冲突

由于在你自己定义的Item中存在诸如Button或者Checkable的子类控件,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。这时候就可以使用descendantFocusability来解决啦,API描述如下:

android:descendantFocusability

Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.

Must be one of the following constant values.

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

所以解决办法:1.在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性。

2.在当前ListView的xml里添加android:descendantFocusability=”blocksDescendants”在item的xml里的Button添加android:focusable="false"的属性。

三.listview的item点击事件会使里面的Button也出现按压的效果

两个方案:1:放弃listview的onItemClickedListener()。listview.setOnItemClickedListener(null);

2:使用自定义的Button,判断他的父控件是否press,如果是就把这个事件消耗掉,不向下传递即可;

import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.widget.Button;public class CustomButton extends Button {    public CustomButton(Context context) {        super(context);    }    public CustomButton(Context context, AttributeSet attrs) {        super(context, attrs);    }    public CustomButton(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);    }    @Override    public void setPressed(boolean pressed) {        if (pressed && getParent() instanceof View && ((View) getParent()).isPressed()) {            return;        }        super.setPressed(pressed);    }}


参考:http://blog.sina.com.cn/s/blog_7033e38201016bu3.html

参考:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html

更多相关文章

  1. android―label窗口――基础编
  2. 用户界面View之ImageView控件
  3. android布局知识符文(layout)
  4. android 设置程序安装位置
  5. Android(8) RecyclerView适配器实现多布局item+item内部控件点击
  6. Android(安卓)基于RecyclerView上下拉刷新(让你轻松自定义头部和
  7. 【Android常用控件】EditText常用属性【一】:空白提示/文本域/特
  8. android 动态创建控件并设置布局
  9. android UI编程

随机推荐

  1. Android的Bitmap类中常用方法
  2. Android读取设备内存大小
  3. Android(安卓)自定义View--ProgressBar篇
  4. Android 跳转界面 自动弹出输入框
  5. Android总结笔记
  6. 关于android Http访问,上传,用了三个方法
  7. Android Factory Reset Without Losing A
  8. Android 读取SIM卡参数
  9. android问题记录:Your project path conta
  10. Android(安卓)ORM框架GreenDao入门学习