gpt4 book ai didi

android - ExpandableListView 扩展 View 未显示

转载 作者:太空狗 更新时间:2023-10-29 14:18:57 24 4
gpt4 key购买 nike

我有一个 ExpandableListView,我想在项目展开时使用不同的 View 对其进行自定义。问题是我分配给 state_expanded 属性的图像从未显示过。我已经尝试了状态的几乎所有其他属性,但唯一可以执行任何操作的是 state_pressed,它只是在按下状态时短暂显示不同的图像。如何让我的 list_item_expanded 可绘制对象在项目展开时保持显示?任何想法或帮助将不胜感激。

这是我的选择器。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_item_expanded" android:state_expanded="true"></item>
<item android:drawable="@drawable/list_item"></item>
</selector>

这是我设置 ExpandableListView 样式的地方

<style name="customExpandableList" parent="@android:style/Widget.ExpandableListView">
<item name="android:groupIndicator">@null</item>
<item name="android:dividerHeight">5dp</item>
<item name="android:divider">@android:color/transparent</item>
<item name="android:listSelector">@android:color/transparent</item>
<item name="android:cacheColorHint">@android:color/transparent</item>
<item name="android:childDivider">@android:color/transparent</item>
</style>

我将选择器设置为适配器中的可绘制对象,如下所示:

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View view, ViewGroup parent) {
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.trans_sum_row, null);
}
view.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.list_item_selector));
}

最佳答案

似乎没有办法做我想做的事。 android:state_expanded 属性仅适用于组指示器,不适用于 ExpandableListView 本身。我最终做的是像这样为 ELV 创建一个选择器,为组指示器创建另一个选择器

<style name="customExpandableList" parent="@android:style/Widget.ExpandableListView">
<item name="android:groupIndicator">@drawable/custom_group_selector</item>
<item name="android:background">@drawable/custom_elv_selector</item>
<item name="android:dividerHeight">5dp</item>
<item name="android:divider">@android:color/transparent</item>
<item name="android:listSelector">@android:color/transparent</item>
<item name="android:cacheColorHint">@android:color/transparent</item>
<item name="android:childDivider">@android:color/transparent</item>
</style>

之后,通过使用 SO 解决方案 here. 将组指示器定位在我想要的位置,我能够获得我想要的相同效果。

以这种方式定位组指示器对我来说并不是最佳解决方案,因为我在某些手机上看到了不同的结果,但这本身就是另一篇文章。

关于android - ExpandableListView 扩展 View 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18708738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com