2012-12-03 82 views
4

我使用下面的代碼到一個頁面滾動至底部時edittext獲得焦點:滾動頁面時編輯文本獲得焦點

fcListener = new OnFocusChangeListener() { 
     public void onFocusChange(View v, boolean hasFocus) { 
      if (hasFocus)     
       handler.postDelayed(new Runnable() { 

        @Override 
        public void run() { 
         Page.fullScroll(ScrollView.FOCUS_DOWN);       
        } 
       },300); 
     } 
    }; 

personNameText.setOnFocusChangeListener(fcListener); 

然而,每當我在EDITTEXT點擊,它獲得焦點幾乎沒有一個瞬間之後,頁面向下滾動。然後edittext放鬆焦點。每次都發生這種情況。我怎樣才能防止失去焦點,但仍然使頁面向下滾動?

+0

我不完全明白爲什麼要向下滾動,這可能會讓用戶感到困惑,因爲它不是預期的行爲,但已知ScrollView混亂了焦點。檢查[這個答案](http://stackoverflow.com/a/7114179/642161)的方式來處理默認行爲。 – dmon

+0

editText字段下面有一個按鈕,當editText具有焦點時,我希望它可見 – Ankush

+0

我看到了,代碼將使scrollview保持焦點。這並不理想,但我還沒有找到另一種方式。 – dmon

回答

0

而不是嘗試使用自定義代碼進行滾動,請在Android Manifest.xml中的活動上使用android:windowSoftInputMode =「adjustResize」。

+1

我用它但沒有調整大小發生,鍵盤只是重疊頁面的底部 – Ankush

相關問題