I am using a custom adapter with a ListView and using a custom layout to supply the list itemviews. My layout is like this
> LinearLayout
> TableView
> TableRow
> TextView
> TextView
This results in list items that do not respond to clicks but if I edit the layout to the following it works
> LinearLayout
> TextView
> TextView
So I know that there is nothing wrong with my Adapter and Activity.
I have tried adding android:descendantFocusability="blocksDescendants"
to the top level linear layout as suggested in this question ListView items not clickable with HorizontalScrollView inside
I have also tried adding android:clickable="true"
and android:focusable="true"
to the TableView
but this does not work either.
Any ideas?
EDIT
layout XML source code
<?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>
EDIT
I have tried adding android:focusable="false"
as suggested here and here but that does not work either.
EDIT
All I really wanted to achieve here was laying out two columns of text one aligned left and the other right. I figured out a better layout to achieve this that does not use TableView so my ListView items remain clickable, it also uses less views so it will also be more efficient, this is it
<?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>
This is not a solution to the problem of TableView making ListView items non clickable but I have noted it here in case anyone else is looking to figure out how to do a similar layout.