如何在android中的Group上的expandable listivew中设置选择器

时间:2016-05-25 12:56:35

标签: android android-widget selector expandablelistview

我想在其groupView上设置选择器,但当我点击groupView上的选择器时,它会转到childView中的expandable listview.。 这是我的expandable listview

     <ExpandableListView
        android:id="@+id/lvLeft"
        android:layout_width="280dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/white"
        android:choiceMode="singleChoice"
        android:dividerHeight="0dp"
        android:listSelector="@drawable/group_indicator"
        android:transcriptMode="alwaysScroll
        />

这是我的group_indication.xml。

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

    <item android:drawable="@drawable/normal" android:state_expanded="true"></item>
    <item android:drawable="@drawable/normal"></item>

</selector>

这是我的normal.xml。

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/red" />

    <padding
        android:bottom="5dp"
        android:left="5dp"
        android:right="5dp"
        android:top="5dp" />
</shape>

实际上我想在展开式列表视图中的groupView上设置自定义颜色,但是当我点击groupView时,groupView的{​​{1}}上的自定义颜色设置。我已附加屏幕截图我现在遇到的问题是,交易历史记录为childView而我的交易是GroupView。请帮我解决这个问题。提前致谢。 enter image description here

1 个答案:

答案 0 :(得分:0)

我通过Prakash Gavade的回答解决了这个问题。 here is answer。在可扩展的listiview适配器中,我添加了以下代码。

     @Override
    public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
    {
        TextView tvUserName = null;
        ImageView imgMenuIcon = null;

        View drawerView = convertView;
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if (groupPosition == 0)
        {
            drawerView = inflater.inflate(R.layout.profile_image, parent, false);
            ImageView ivProfilePic = (ImageView) drawerView.findViewById(R.id.imgProfile);
            tvUserName = (TextView) drawerView.findViewById(R.id.tvFname);
            TextView tvLname = (TextView) drawerView.findViewById(R.id.tvLname);
        }
        else if(isExpanded){
            convertView.setBackgroundResource(R.color.gray);
        }
        return drawerView;
    }