Android自定義ListView單擊事件失效的解決方法
因為自帶的listView不能滿足項目需求,通過實現自己的Adapter去繼承ArrayAdapter 來實現自定義ListView的Item項目。
出現點擊ListView的每一項都不會執(zhí)行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和其子控件兩者之間的關系。
屬性的值有三種:
- beforeDescendants:viewgroup會優(yōu)先其子類控件而獲取到焦點
- afterDescendants:viewgroup只有當其子類控件不需要獲取焦點時才獲取焦點
- blocksDescendants:viewgroup會覆蓋子類控件而直接獲得焦點
我們使用blocksDescendants 屬性來覆蓋子類控件,而直接獲取焦點。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android三種網絡通訊方式及Android的網絡通訊機制
在android平臺目前提供了三種網絡接口可以使用:分別是java.net.*(標準Java接口)、Org.apache接口和Android.net.*(Android網絡接口),本文主要給大家介紹android三種網絡通訊方式及android的網絡通訊機制,小伙伴們一起學習吧2015-11-11
Android使用Activity實現從底部彈出菜單或窗口的方法
這篇文章主要介紹了Android使用Activity實現從底部彈出菜單或窗口的方法,涉及Android布局、窗口、事件監(jiān)聽、權限控制等相關操作技巧,需要的朋友可以參考下2017-07-07
Android開源項目PullToRefresh下拉刷新功能詳解2
這篇文章主要為大家進一步的介紹了Android開源項目PullToRefresh下拉刷新功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09

