ListView由于item项中包含某些可以…

如果你自定义ListView的项中包含能获得焦点的子控件(RadioGroup、Button、CheckBox、 DatePicker、ImageButton、ScrollView、SeekBar、EditText、ToggleButton、 RatingBar等)的话,默认焦点会被交给这些子控件,而ListView的项能被选中的基础是它能获取焦点,所以项中的这些子控件的焦点必须为 false,这样ListView的项才能获取onItemLongClick事件与onItemClick事件

解决办法(以Button为例):

在布局文件中,在项的layout布局文件根元素中加入android:descendantFocusability="blocksDescendants"

注意:ListView的项根元素layout的宽要设置成android:layout_width="fill_parent",否则可能会因为项内容太短,导致点击时获取不到焦点。

如果你自定义ListView的项中包含能获得焦点的子控件GridView的话,默认焦点会被交给这些子控件,而ListView的项能被选中的 基础是它能获取焦点,所以项中的这些子控件的焦点必须为false,这样ListView的项才能获取onItemLongClick事件与 onItemClick事件

解决办法(以Button为例): 

  1.在布局文件中,在项的layout布局文件根元素中加入

android:descendantFocusability="blocksDescendants"

  2.程序中给GridView进行如下设置

  gridView.setClickable(false);

    gridView.setPressed(
false);
    gridView.setEnabled(
false);

要是listview上面或下面有黑色阴影

 解决办法:布局文件中给listview加入android:fadingEdge="none"

一个完整的listview(带分割线+背景色)

        android:id="@+id/listview"
        android:layout_width="fill_parent"
        android:layout_height="180dip"
        android:divider="#ff999999"
        android:dividerHeight="1sp"
        android:fadingEdge="none"
        android:scrollingCache="false"
        android:background="#ff00ff00"
        />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值