ExpandableListView:向扩展组添加边框

时间:2016-11-07 11:23:45

标签: android

请帮我解决这个问题。当我的ExpandableListView中的一个组被展开时,我想要这个绿色边框:

enter image description here

有什么方法可以轻松地做到这一点吗?

修改: 我试过阿巴斯的回答,但它只包括父视图,而不是整个组。

enter image description here

2 个答案:

答案 0 :(得分:0)

在可扩展适配器中添加以下行:

public View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {


// Your header layout id      
    RelativeLayout rl_header = (RelativeLayout)convertView.findViewById(R.id.rl_header);

    if(isExpanded)
    {

        rl_header.setBackground(_context.getResources().getDrawable(R.drawable.header_background_black));
    }
    else
    {

        rl_header.setBackgroundResource(R.drawable.header_background);
    }
    return convertView;
}

答案 1 :(得分:0)

将选择器设置为父项(Carpentary and Woodworks等)的背景。

drawable 文件夹中添加名为 item_selector.xml 的新背景文件。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <stroke android:color="@color/green" android:width="1dp"/>
        </shape>
    </item>
</selector>

xml代码中为您的查看项设置背景。我只能在这里猜测,因为你没有提供任何代码。

<LinearLayout
    android:background="@drawable/item_selector">
    <TextView></TextView>
    <ImageView></ImageView>
</LinearLayout

最后当您展开视图时,即onClick

expandableView.setSelected(true);

当选择其他视图时,不要忘记更改选择状态。