2011-01-27 80 views
2

我正在使用带有ListView的自定义适配器并使用自定义布局来提供列表项目视图。我的布局是这样的Android TableView作为ListView中的itemview不可点击

> LinearLayout 
    > TableView 
     > TableRow 
      > TextView 
      > TextView 

这将导致不响应点击列表中的项目,但如果我编辑的版面以下它的工作原理

> LinearLayout 
    > TextView 
    > TextView 

所以我知道,有什么错我的适配器和活动。

我曾尝试加入android:descendantFocusability="blocksDescendants"顶端水平的线性布局,在这个问题ListView items not clickable with HorizontalScrollView inside

我也尝试添加android:clickable="true"android:focusable="true"TableView建议,但这个也不行。

任何想法?


编辑

布局XML源代码

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TableLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:stretchColumns="1" 
    > 
     <TableRow 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:clickable="true" 
      android:paddingTop="10dp" 
      android:paddingBottom="10dp" 
      android:gravity="center_vertical"> 
      <TextView 
       android:id="@+id/ITEMVIEW_TEXT2_lblText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:paddingRight="5dp" 
       android:paddingLeft="15dp" 
       /> 
      <TextView 
       android:id="@+id/ITEMVIEW_TEXT2_lblText2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:textColor="#ff385487" 
       android:gravity="right" 
       android:paddingRight="15dp" 
       /> 
     </TableRow> 
    </TableLayout> 
</LinearLayout> 

编辑

我曾尝试加入android:focusable="false"的建议herehere但这并不工作。


编辑

我真正想在这里实现了布置文本一个左对齐和其他权利的两列。我想出了一个更好的布局来实现这一点,不使用的TableView所以我的ListView项目保持点击,它也使用较少的意见,这也将是更有效的,这是它

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 
      <TextView 
       android:id="@+id/ITEMVIEW_TEXT2_lblText" 
       android:layout_width="0dp" 
       android:layout_weight="1" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:paddingRight="5dp" 
       android:paddingLeft="15dp" 
       /> 
      <TextView 
       android:id="@+id/ITEMVIEW_TEXT2_lblText2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:textColor="#ff385487" 
       android:gravity="right" 
       android:paddingRight="15dp" 
       /> 
</LinearLayout> 

这不是一个解决方案TableView使ListView项目无法点击的问题,但我已经在这里注意到它,以防其他任何人想要弄清楚如何做类似的布局。

+0

可以用粘贴xml代码的listview布局吗? – 2011-01-27 13:38:03

回答

0

我正在使用TableLayout和TableRow的组合来绊倒类似的问题。

我的解决方案如下: TableRow似乎没有自己的Selector,因此即使将其定义为可点击和可聚焦,您也将永远看不到视觉差异。 我为TableRow分配了一个背景,这与GridView使用的背景相当(可以在android-sdk-windows \ platforms \ android-10 \ data \ res \ drawable \ grid_selector_background.xml下的SDK中找到) 。

之后,它完全可以聚焦和点击。