ScrollView自動到底部的問題

問題背景:ScrollView中含有listview,每次啟動的時候為了獲取ScrollView的高度,需要完全測量listview的高度,因此,在默認情況下會滑動到頁面的最低端,造成問題。

解決方法:
1.(XML)在ScrollView布局中,找到第一個View,給它獲取焦點的權限,這樣的話,在ScrollView測量完高度的之后,會相應View的獲取權限的請求,又會回到View的位置,解決問題。

<View 
      ....
      android:focusable="true"
      android:focusableInTouchMode="true"
/>

2.(Java)

view.setFocusable(true); 
view.setFocusableInTouchMode(true); 
view.requestFocus();

關于焦點是什么的問題?
類似非觸屏手機時代,需要使用鍵盤的上下左右去選中某個應用,然后點擊確定執行。而觸屏手機,我們只需要對應用點擊一次,即可,無需焦點。也就是會所焦點是為了標記你目前選中的位置的。而這個在日歷中卻是有用的。
android:focusable與android:focusableInTouchMode
前者針對在鍵盤下操作的情況,如果設置為true,則鍵盤上下左右選中,焦點會隨之移動。
而后者,顯然是針對觸屏情況下的,也就是我們點擊屏幕的上的某個控件時,不要立即執行相應的點擊邏輯,而是先顯示焦點(即控件被選中),再點擊才執行邏輯。
android:focusable=“true”不會改變android:focusableInTouchMode,因此只在鍵盤狀態下顯示焦點,在TouchMode狀態下,依舊無法顯示焦點。
android:focusable=“false”,一定會使android:focusableInTouchMode=“false”。
android:focusableInTouchMode=“false”,不會影響android:focusable。
android:focusableInTouchMode=”true”,一定會是android:focusable=“true”
http://stackoverflow.com/questions/23799064/what-is-the-difference-between-setfocusable-and-setfocusableintouchmode

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容