gpt4 book ai didi

java - 如何突出显示 ExpandableListView 的组行

转载 作者:行者123 更新时间:2023-11-29 22:01:24 25 4
gpt4 key购买 nike

根据 State List Selector 使用以下代码当用户在显示屏上按下 ExpandableListView 时,我设法突出显示了它的单个子行:

XML 状态选择器代码:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item
android:state_pressed="true"
android:drawable="@color/highlighted_entry" />

<item
android:state_selected="true"
android:drawable="@color/highlighted_entry" />

<item android:drawable="@color/transparent" />

</selector>

XML ExpandableListView 布局代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="@drawable/exp_list_entry_selector"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" >

<TextView android:id="@+id/exp_list_entry_title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:textStyle="bold"
android:textSize="12dp"
android:textColor="#000000"
/>

</LinearLayout>

Java 代码:

@Override
public boolean onChildClick( ExpandableListView parent, View v,
int groupPosition, int childPosition, long id )
{
v.setSelected(true);
return false;
}

如果我尝试突出显示组行(可展开的 ListView 的条目),则同样的方法将不起作用:当用户按下它(并展开或折叠它)时,它会突出显示children),但释放后背景颜色会恢复正常。

无论是否展开,如何突出显示组行?

最佳答案

通过将android:background="@drawable/row_highlighter" 属性添加到expandableListViewchild.xml。并创建一个 row_highlighter.xml 文件。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@android:color/holo_orange_dark" android:state_activated="true"/>
<item android:drawable="@android:color/transparent"/>

</selector>

和源代码:

int index = parent.getFlatListPosition(ExpandableListView
.getPackedPositionForChild(groupPosition, childPosition));
parent.setItemChecked(index, true);

Highlighting the selected item in the ExpandableListView

关于java - 如何突出显示 ExpandableListView 的组行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826723/

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