android - 如何显示动态 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
,所以它会通过单击一个来展开所有视图,因为id
s 将是相同的。有什么方法可以正确实现吗?
解决方案
推荐阅读
- winapi - Windows API 的完整在线文档在哪里?
- cocos2d-x - 空的 cocos2D-x 项目太大
- javascript - 在 Ionic 框架中使用电子邮件发送附件
- typescript - 从移动应用程序中提取设备信息
- arrays - 如何为复杂的 JSON 数组应用 if-else
- ruby-on-rails - Rails、Chartkick 和 Blazer
- javascript - 成功函数为clld时如何动态滚动ol到底部?
- unit-testing - 从基于 .NET 4.7.1 的 C# 测试项目中定位 .NET Core 2.0.1 Web 项目
- python - scipy UnivariateSpline 在绘图时总是返回线性样条曲线
- javascript - JS 条件正则表达式,删除两个分隔符之间的字符串的不同部分