EditText會自動獲取焦點並彈出輸入法的問題


  其實真正煩人的就是一到頁面就彈出來一個輸入法,輸入法之所以會彈出是因為EditText獲取了焦點,而讓EditText獲取焦點是android默認的,哪怕你沒設置它獲取焦點

  一個解決的方法就是讓別的控件獲取焦點,這樣EditText就不會自動獲取焦點了

  一般可以在最底層的Layout中添加下面兩行代碼,讓最底層Layout獲取焦點:

  

android:focusable="true"
android:focusableInTouchMode="true"

   注:1、這個方法只能解決在進入一個界面時EditText自動獲取焦點的問題

        2、感謝Dream boy同學的評論,剛開始寫一些東西,很容易給大家帶來誤導,相信以后會越來越好

 

如果想要點擊EditText彈出軟鍵盤后,觸摸別的地方軟鍵盤自動收起則另需辦法

一般是在觸摸別的View的監聽器里面把軟鍵盤給收起,例如在ListView的滾動監聽器中收起軟鍵盤:

listView.setOnScrollListener(new OnScrollListener() {

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }

    @Override
    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
    }
});

 

關鍵是收起軟鍵盤的代碼:

InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

 注:收起軟鍵盤后EditText依舊獲取焦點,所以這個方法還是不能從根本上解決EditText獲取焦點的問題,如果哪位同學直到方法,希望可以教我一下

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM