ListView中怎么才能让特定的ITEM获取焦点

ListView中怎么才能让特定的ITEM获取焦点,第1张

ListView默认情况

当item有焦点时,item上的button等子控件获取不到焦点;

当子控件有焦点时,item无焦点无法响应onItemClick事件

ViewGroupFOCUS_AFTER_DESCENDANTS:表示item的子控件优先于item获得焦点;

ViewGroupFOCUS_BEFORE_DESCENDANTS:表示item优先于其子控件获得焦点。

解决办法:

[java] view plaincopy

listViewsetOnItemSelectedListener(onItemSelectedListener);

private AdapterViewOnItemSelectedListener onItemSelectedListener =

new AdapterViewOnItemSelectedListener(){

@Override

public void onItemSelected(AdapterView<> parent, View view,

int position, long id) {

//当此选中的item的子控件需要获得焦点时

parentsetDescendantFocusability(ViewGroupFOCUS_BEFORE_DESCENDANTS);

//else parentsetDescendantFocusability(ViewGroupFOCUS_BEFORE_DESCENDANTS);

}

@Override

public void onNothingSelected(AdapterView<> parent) {

parentsetDescendantFocusability(ViewGroupFOCUS_BEFORE_DESCENDANTS);

}

}

1将ListView的Item Layout的子控件focusable属性设置为false

2对Item Layout的根控件android:descendantFocusability="blocksDescendant"

例如:

<RelativeLayout

xmlns:android=">

RatingBar 自定义style的用法

第一步:配置ratingbar 的style

<style name="foodRatingBar" parent="@android:style/WidgetRatingBar">

<item name="android:progressDrawable">@drawable/food_ratingbar_full</item>

<item name="android:minHeight">48dip</item>

<item name="android:maxHeight">48dip</item>

</style>

第二部:配置 drawable

<xml version="10" encoding="utf-8">

<layer-list xmlns:android=">

以上就是关于ListView中怎么才能让特定的ITEM获取焦点全部的内容,包括:ListView中怎么才能让特定的ITEM获取焦点、android listview 怎么获取焦点、安卓的自定义Ratingbar控件怎么改变星星大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10074622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存