Android-ListView中嵌套(ListView)控件时的问题

Flag:   当ListView中嵌套了一个Button或者ImageButton时,会让ListView的OnItemClickListener失去效果。
本意是想让ListView中嵌套一个ListView(ListView嵌套ListView),呵呵。结果父View的OnItemClick事件不触发了。郁闷,调查了一下,找到一个解决方案。

1. 在子ListView的XML配置中,最顶层的Layout中增加属性: android:descendantFocusability="blocksDescendants"
2. 设置ListView的setFocusable为false就行了。


代码:
StatisticsForcastListView.java

public StatisticsForcastListView(Context context,int period) {
super(context,null);
this.period = period;
initialComponent();
}

private void initialComponent() {
//默认的列表背景色
this.setBackgroundColor(Constants.C_Color_Content_Background);
//自动消失的滚动条
this.setScrollbarFadingEnabled(true);
//不能点击
this.setClickable(false);
//不能获取焦点
this.setFocusable(false);
//设置高度为固定的值
layout.height = ScreenAdapter.getInstance().ComputeHeight(200);
this.setLayoutParams(layout);
//设置数据过滤器
if(adapter==null) {
adapter = new StatisticsForcastDataAdapter(getContext(),period);
}
this.setAdapter(adapter);
}


Adapter对应的Xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:id="@+id/statistics.forcast.mainContainer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:descendantFocusability="blocksDescendants"
    ><!-- 主窗体 -->
   <TextView android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="5.5"
   android:id="@+id/statistics.forcast.numbers"
   android:gravity="center"
   android:text="12,15,2,4,6,9,14"
   />
    <TextView android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_weight="3.8"
   android:id="@+id/statistics.forcast.forcastDate"
   android:gravity="center"
   android:text="2011-08-25 12:30:27"
   />
    <TextView android:layout_width="wrap_content"
     android:layout_height="wrap_content" 
   android:layout_weight="3.8"
     android:id="@+id/statistics.forcast.award"
     android:gravity="center"
     android:text="未中奖"
    />
</LinearLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值