閱讀119 返回首頁    go 阿裏雲 go 技術社區[雲棲]


android中view的focus焦點處理

通過isFocusable()這個方法我們可以知道view是否具有接受焦點的資格,通過setFocusable().來設置view接受焦點的資格;

         對應在觸摸模式下,你可以調用isFocusableInTouchMode().來獲知是否有焦點來響應點觸,也可以通過setFocusableInTouchMode().來設置是否有焦點來響應點觸的資格.

         在Activity中,當我們按上下左右方向鍵時,view中的焦點也會移動,我們怎麼控製他的移動順序呢,在XML屬性布局文件中,有四個屬性: nextFocusDown , nextFocusLeft , nextFocusRight ,和nextFocusUp, 設置他們的值來明確焦點從當前界麵移動下個界麵的Id。例如:
<LinearLayout 
    android:orientation="vertical" 
    ... > 
  <Button android: 
          android:nextFocusUp="@+id/bottomBtn" //當焦點處在這個topBtn按鈕上,再按向上方向鍵,焦點就會移動到bottomBtn按鈕上。
          ... /> 
  <Button android: 
          android:nextFocusDown="@+id/topBtn" //當焦點處在這個bottomBtn按鈕上,再按向下方向鍵,焦點就會移動到topBtn按鈕上。
          ... /> 

</LinearLayout>

二.不讓文本輸入框默認獲得焦點,彈出鍵盤占據我們的屏幕的方法

有時會遇到一種情況,在真機運行一個頁麵,焦點會默認在EditText上,然後自動彈出鍵盤來占據大半個屏幕。處理方法很簡單。在配置文件中加一句:

<activity ...  android:windowSoftInputMode="stateAlwaysHidden|adjustResize"  />
這樣即可,意思是默認隱藏鍵盤輸入法。

最後更新:2017-04-03 14:54:43

  上一篇:go 手機衛士13-手機歸屬地數據庫
  下一篇:go LinearLayout按下(pressed)或獲取焦點(focused)時背景設置不同顏色或圖片