在展开和折叠时调整ExpandableListView的背景大小

时间:2016-12-07 08:46:43

标签: android android-layout expandablelistview nine-patch responsiveness

我有一个带有9.patch背景的expandableListView,当它的所有标题都已折叠时,它看起来像下图:

Collapsed list

默认情况下,展开标题时,整个视图将转换为滚动视图,如下所示:

enter image description here

但我想要的是在扩展标题时调整背景大小,以便所有其他标题和项目都可见而不滚动:

enter image description here

当标题再次出现时,当然会重新调整到较小的视图(第一张图片)。

我该如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我付诸实践了@Vladyslav Matviienko的建议,并且效果很好

在我的情况下,我使用LinearLayout是为了获得更大的自由来创建视图

(我将其放在RecyclerView的onBindViewHolder上,以创建一种自定义的ExpandableListView)

关注已被删除

Java

holder.header.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int newVisibility = holder.content.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE;
        holder.content.setVisibility(newVisibility);
    }
});

布局xml

<LinearLayout
    android:id="@+id/header"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:text="Header" />

</LinearLayout>

<LinearLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:visibility="gone">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp"
        android:text="Content" />

</LinearLayout>