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点击的灵异事件告一段落。