Android View獲取焦點

做項目的時候遇到一個bug,在一個Activity中打開DrawerLayout,這樣就會遇到一個問題,在Activity中的EditText的焦點還在,這樣根據(jù)項目中的代碼邏輯數(shù)據(jù)就會同步不過來,這樣展示就會有問題,所以打算總結(jié)一下。

Android新啟動Activity,dialog或者其他窗體中中包含EditText, 新啟動的activity的焦點默認在EditText上,這是android系統(tǒng)會彈出軟鍵盤,擠壓activity本來的界面,影響美觀。
因此最好在新窗體創(chuàng)建時,最好在onCreate()方法中將焦點放在另一個view上. view使用requestFocus()焦點,但是如果讓button或者textView之類控件直接使用requestFocus()方法,則無法獲取焦點,焦點會依然在editText上。

只能在使用View的requestFocus()方法之前調(diào)用下面2個方法,view才可獲取焦點:

view.setFocusable(true);

view.setFocusableInTouchMode(true);

然后調(diào)用 requestFocus(),requestFocusFromTouch()即可獲取焦點。

項目中的操作

這個是項目中的本來的邏輯
項目中的抽屜回調(diào)

最后解決方法

在抽屜滑動的時候讓抽屜獲得焦點,這樣原Activity的焦點消失,更新List的Data,然后抽屜里面在取最新的ListData,達到更新的目的。。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容