android兩次點擊的焦點問題

底部導航欄原來採用radiogroup 但是中間凸出  所以中間採用view 的方式,但是出現view點擊兩次的問題,查看問題的原因是view焦點被radiobuttun搶佔,而單純的採用在佈局加<requestFocus> 、android:focusableInTouchMode="true"、android:focusable="true"、android:clickable="true"是不能解決問題的。我們要找到原因然後才能解決它。
子元素中如果是view(比如,LinearLayout等),容易被button等搶奪焦點,兩次生效通過debug發現第一次沒有響應,是獲取焦點,第二次纔是點擊操作。我們可以通過setOnFocusChangeListener檢測當前控件的焦點如果沒有焦點我們獲取焦點給它,這樣點擊一次就能實現啦。對於焦點問題,我們可以監聽和debug就能及時找到問題所在。
kongjian.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if(hasFocus){

                }else{
                    fabu.requestFocus();
                    fabu.setFocusableInTouchMode(true);
                    fabu.setFocusable(true);
                }
            }
        });
發佈了57 篇原創文章 · 獲贊 19 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章