因為自帶的listView不能滿足項目需求,通過實現自己的Adapter去繼承ArrayAdapter 來實現自定義ListView的Item項目。
出現點擊ListView的每一項都不會執行setOnItemClickListener 里面的onItemClick 方法。
原因是item里面存在一些子控件,默認點擊獲取的焦點跑去子控件去了,點擊失效。
解決辦法:
在item的根目錄加入android:descendantFocusability="blocksDescendants"
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:descendantFocusability="blocksDescendants"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" app:srcCompat="@drawable/message_oc" /> <TextView android:id="@+id/textTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="title" android:textSize="25dp" android:layout_marginLeft="15dp"/> <TextView android:id="@+id/textDate" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right" android:text="date" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/textMessage" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:inputType="textMultiLine" android:text="message" android:textSize="20dp"/> </LinearLayout></LinearLayout>
該屬性是當一個為view獲取焦點時,定義viewGroup和其子控件兩者之間的關系。
屬性的值有三種:
我們使用blocksDescendants 屬性來覆蓋子類控件,而直接獲取焦點。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答