Android基礎入門教程——2.4.4 ListView的焦點問題

來源:互聯網
上載者:User

標籤:android   listview   焦點問題   

Android基礎入門教程——2.4.4 ListView的焦點問題

標籤(空格分隔): Android基礎入門教程

本節引言:

如果你往ListView的Item中添加了Button,CheckBox,EditText等控制項的話,你可能需要考慮
到一個問題:ListView的一個焦點問題!本節我們就來學習下解決這個問題的幾個方法!
我們可以寫個簡答的listView,上面有一個Button,CheckBox,EditText,但是當我們點擊發現,
ListView的item點擊不了,觸發不了onItemClick的方法,也觸發不了onItemLongClick方法,
這個就是ListView的一個焦點問題了!就是ListView的焦點被其他控制項搶了,下面我們來看看如何
解決這個問題?

方法1:為搶佔了控制項的組件設定:android:focusable=”false”

如題,只需為搶佔了ListView Item焦點的控制項設定android:focusable=”false”即可解決這個問題
或者在代碼中獲得控制項後調用:setFocusable(false)
!!另外,EditText卻不行,如果我們設定了android:focusable=”false”,這B可以擷取焦點但是一下子
又失去了焦點,而且也不會彈出小鍵盤,暫不知道如何解決,聽別人說是ListView的一個bug,如果
有知道解決方案的歡迎告知下,謝謝~

方法2:item根節點設定android:descendantFocusability=”blocksDescendants”

如題,在Item布局的根節點添加上述屬性,android:descendantFocusability=”blocksDescendants”
即可,另外該屬性有三個可供選擇的值:

  • beforeDescendants:viewgroup會優先其子類控制項而擷取到焦點
  • afterDescendants:viewgroup只有當其子類控制項不需要擷取焦點時才擷取焦點
  • blocksDescendants:viewgroup會覆蓋子類控制項而直接獲得焦點
本節小結:

好的,以上就是解決ListView焦點問題的兩個方法,非常簡單,如果有關於EditText
焦點問題解決方案的歡迎提出,謝謝~

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android基礎入門教程——2.4.4 ListView的焦點問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.