android獲取listview焦點
1. android ListView刷新焦點問題
這個問題沒有試過,不過我想說一下我的思路,你看是否可行:
你可以在窗體中放置一個隱藏的控制項,然後寫一個委託事件,每當listview焦點改變後,就將該焦點所在的行的ID作為那個隱藏控制項的值,每次刷新的時候檢查該值,讓焦點停留到LIstView中的該行就可以了!
2. android 中 怎麼在listview的子項ProgressBar中讓ProgressBar獲得焦點
listView的屬性 focusable為false clickable=true 這樣 progressbar可以獲得焦點可以點擊 item也可以點擊
3. Android ListView常用屬性解析
beforeDescendants:viewgroup會優先其子類控制項而獲取到焦點
afterDescendants:viewgroup只有當其子類控制項不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控制項而直接獲得焦點
android:drawSelectorOnTop="true" 點擊某一條記錄,顏色會顯示在最上面,記錄上的文字被遮住,所以點擊文字不放,文字就看不到
android:drawSelectorOnTop="false" 點擊某條記錄不放,顏色會在記錄的後面,成為背景色,但是記錄內容的文字是可見的
fadingEdgeLength表示陰影部分的高度,requiresFadingEdge表示陰影的方向
android:fastScrollEnabled="true"
是讓ListView出現快速滾動的按鈕,比較少的item時候不會出現,多了就會出現。不出現原因是數據不多的原因,只要數據足夠多,才會自動出現的。
android:footerDividersEnabled="true" 和android:headerDividersEnabled="true」對應。
api說明是:設成flase時,此ListView將不會在頁腳或者頭部視圖 前畫分隔符。此屬性預設值為true。
這說明這個屬性只對頁腳或者頭部起作用,如果listview中沒有添加頁腳這個屬性就不起作用。
指示該列表總是在固定的單色、不透明的背景下繪制。這允許列表優化其繪制過程
為真時,列表會使用更精確的基於條目在屏幕上的可見像素高度的計算方法。 默認該屬性為真,如果你的適配器需要繪制可變高的條目,他應該設為假。 當該屬性為真時,你在適配器在顯示變高條目時,滾動條的把手會在滾動的 過程中改變大小。當設為假時,列表只使用適配器中的條目數和屏幕上的 可見條目來決定滾動條的屬性
4. android listview button 焦點問題
istview button 搶占焦點的解決辦法:
Item xml 根節點添加 android:descendantFocusability="blocksDescendants"
Button 設置
android:focusable="false"
這樣點擊Button 和ListView Item 可以分別響應自己的點擊事件
開發中很常見的一個問題,項目中的listview不僅僅是簡單的文字,常常需要自己定義listview,自己的Adapter去繼承BaseAdapter,在adapter中按照需求進行編寫,問題就出現了,可能會發生點擊每一個item的時候沒有反應,無法獲取的焦點。
原因多半是由於在你自己定義的Item中存在諸如ImageButton,Button,CheckBox等子控制項(也可以說是Button或者Checkable的子類控制項),此時這些子控制項會將焦點獲取到,所以常常當點擊item時變化的是子控制項,item本身的點擊沒有響應。
這時候就可以使用descendantFocusability來解決啦
該屬性是當一個為view獲取焦點時,定義viewGroup和其子控制項兩者之間的關系。
屬性的值有三種:
beforeDescendants:viewgroup會優先其子類控制項而獲取到焦點
afterDescendants:viewgroup只有當其子類控制項不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控制項而直接獲得焦點
通常我們用到的是第三種,即在Item布局的根布局加上**android:descendantFocusability=」blocksDescendants」**的屬性就好了,至此listview點擊的靈異事件告一段落。
5. android ListView EditText 鍵盤 焦點
兩種解決辦法:
第1種:ScrollView+LinearLayout
第2種:ListView+LinearLayout
如果用第1種方法,每一行的layout和UI控制項全部都得用new的,雖然在處理上會簡單一點。
第2種方法,ListView的超過一屏之後的Cell可以重用前一屏的Cell(通過getView方法)。
6. android 中 listview 設置選中 獲取焦點 然後點擊一個button刪除此item 應該怎麼實現
button增加OnclickListener監聽,然後更新listview里的list數據就好,
需要注意的是,更新數據後,調用notifyDataChanged()
7. android listview獲取焦點的item一直在屏幕的最前,怎麼處理。
private void setListViewPos(int pos) {
if (android.os.Build.VERSION.SDK_INT >= 8) {
mListView.smoothScrollToPosition(pos);
} else {
mListView.setSelection(pos);
}
}
點選某個item時記錄下他在listView中的位置,然後用上面這個方法就可以直接讓listView滾動到這一行。
8. android listView,Button,android:descendantFocusability、android:focusable都已經添加無法獲取焦點
beforeDescendants:viewgroup會優先其子類控制項而獲取到焦點
afterDescendants:viewgroup只有當其子類控制項不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控制項而直接獲得焦點
所以,你應該用第二個設置,這樣子控制項就可以優先獲取到焦點了
9. android開發 listview中textview搶焦點問題
如果你的自定義ListViewItem中有Button或者Checkable的子類控制項的話,那麼默認focus是交給了子控制項,而ListView的Item能被選中的基礎是它能獲取Focus。
我們可以通過對Item Layout的根控制項設置其android:descendantFocusability=」blocksDescendants」來解決,這樣Item Layout就屏蔽了所有子控制項獲取Focus的許可權,如此就可以順利的響應onItemClickListener中的onItenClick()方法了。
android:descendantFocusability有三種屬性:
beforeDescendants:viewgroup會優先其子類控制項而獲取到焦點
afterDescendants:viewgroup只有當其子類控制項不需要獲取焦點時才獲取焦點
blocksDescendants:viewgroup會覆蓋子類控制項而直接獲得焦點