做項目的時候遇到一個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,達到更新的目的。。。。