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