androidlistview焦點
❶ 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會覆蓋子類控制項而直接獲得焦點
❷ android ListView EditText 鍵盤 焦點
兩種解決辦法:
第1種:ScrollView+LinearLayout
第2種:ListView+LinearLayout
如果用第1種方法,每一行的layout和UI控制項全部都得用new的,雖然在處理上會簡單一點。
第2種方法,ListView的超過一屏之後的Cell可以重用前一屏的Cell(通過getView方法)。
❸ 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滾動到這一行。
❹ android listview edittext 焦點 滾動
曾經做過這個,但是如果要我敲出代碼給你,這個需要比較多的精力。
提供個思路給你:
你可以獲取到當前Activity下面的所有View,並且你能判斷出Edittext有哪些,還有就是當前Edittext下面的那個Edittext是哪個,這樣的話,你按回車 直接在TextWatcher中的onTextChanged中做好處理,當用戶按了回車,你就直接讓焦點跑到下一個EditText上。
❺ 如何控制listview的焦點
1.將ListView的Item Layout的子控制項focusable屬性設置為false
2.對Item Layout的根控制項android:descendantFocusability="blocksDescendant"
例如:
<RelativeLayout
xmlns:android=""
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dip"
android:background="#ffffffff"
android:descendantFocusability="blocksDescendant >
<LinearLayout
<RatingBar
android:id="@+id/rb_bookRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="2.0"
style="@style/RatingBar"
android:isIndicator="true"
/>
</LinearLayout>
<Button
android:id="@+id/btn_schele"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:focusable="false"
android:text="影訊"
style="@style/Button"
/>
</RelativeLayout>
❻ android listview item textview怎麼獲取焦點
當前textview.setFocusable(true);就可以了,你在載入listview item的adapter(適配器里)通過position給當前item設置焦點,就可以實現item獲取焦點
❼ android ListView刷新焦點問題
這個問題沒有試過,不過我想說一下我的思路,你看是否可行:
你可以在窗體中放置一個隱藏的控制項,然後寫一個委託事件,每當listview焦點改變後,就將該焦點所在的行的ID作為那個隱藏控制項的值,每次刷新的時候檢查該值,讓焦點停留到LIstView中的該行就可以了!
❽ android listview 怎麼獲取焦點
1.將ListView的Item Layout的子控制項focusable屬性設置為false
2.對Item Layout的根控制項android:descendantFocusability="blocksDescendant"
例如:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dip"
android:background="#ffffffff"
android:descendantFocusability="blocksDescendant >
<LinearLayout
<RatingBar
android:id="@+id/rb_bookRating"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:rating="2.0"
style="@style/RatingBar"
android:isIndicator="true"
/>
</LinearLayout>
<Button
android:id="@+id/btn_schele"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:focusable="false"
android:text="影訊"
style="@style/Button"
/>
</RelativeLayout>
❾ 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點擊的靈異事件告一段落。