首页 > 解决方案 > 如何显示动态 ExpandableViews

问题描述

我正在从服务器获取我的应用程序中的数据。它是一个包含多条记录的数组。有一个Tablelayout,其中每个提取的记录都添加为TableRow. 它工作正常。但是,现在我正在使用第三方库ExpandableRelativeLayout,因为我希望详细信息一一显示,并且仅在用户单击它时展开。以下是xml代码:

<!--it calls java function to toggle the below layout-->
<TextView
    android:text="Click to expand +"
    android:onClick="full_test_expand"/>
<com.github.aakira.expandablelayout.ExpandableRelativeLayout
    android:id="@+id/full_test_expand_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:ael_expanded="false"
    app:ael_duration="500"
    app:ael_orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ...>
        <TextView
            android:id="@+id/date"
            .../>
        <TextView
            android:id="@+id/subject"
            .../>
        <TextView
            android:id="@+id/marks"
            .../>
        <TextView
            android:id="@+id/rank"
            .../>
    </LinearLayout>
</com.github.aakira.expandablelayout.ExpandableRelativeLayout>

以下是java中的代码:

ExpandableRelativeLayout full_test_expand_layout;
public void full_test_expand(View v){
    full_test_expand_layout = findViewById(R.id.full_test_expand_layout);
    full_test_expand_layout.toggle();
}

此功能将根据 进行切换id。但是,数据被获取,array并且需要循环来获取记录并将其添加到视图中。我想ExpandableView为每条记录分别构造并构造相同数量的视图。但是,由于展开和折叠是通过使用来完成的id,所以它会通过单击一个来展开所有视图,因为ids 将是相同的。有什么方法可以正确实现吗?

标签: androidexpandable

解决方案


推荐阅读