我使用listview,因为我必须动态填充。就像常见问题解答一样,该项目显示了问题,一旦我们点击特定项目应展开的项目并显示文本视图。我不能使用ExpandableListView,因为ListView项中只有一个TextView。
Button
因此,如果用户点击第2项:
Item 1 v
----------------------
Item 2 v
----------------------
Item 3 v
请帮忙!
这是我到目前为止所得到的!
Item 1 v
----------------------
Item 2 ^
This is also a dynamic text but can be put in a single textview.
----------------------
Item 3 v
----------------------
列表没有扩展到文本的全长..!
答案 0 :(得分:1)
使用两个TextView创建布局。将可见性设置为第二个TextView为GONE。 实现AdapterView.OnItemClickListener接口并尝试使用以下代码。
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
View secondTextView = view.findViewById(R.id.second_text_view);
int visibility = secondTextView.getVisibility() == View.VISIBLE ? View.GONE :
View.VISIBLE;
secondTextView.setVisibility(visibility);
}
P.S。我还没有测试过,只是给出了一个主意。
答案 1 :(得分:0)
假设您使用的是自定义适配器,则可以根据条件检查将扩展视图的可见性从gone
设置为visible
。这可以在adpater中的getView
或bindView
方法中完成。作为一个例子,下面的代码查看上一个条目,如果商店不同,它使商店标题可见(否则消失),如果过道不同。这是使用listView's
bindView
方法编码的: -
if(prevshop != cursor.getLong(shoppinglist_shopid_offset)) {
shophdrll.setVisibility(View.VISIBLE);
shophdrll.setBackgroundColor(ContextCompat.getColor(context, R.color.colorlistviewheading));
} else {
shophdrll.setVisibility(View.GONE);
}
if(prevaisle != cursor.getLong(shoppinglist_aisleid_offset)) {
aislehdrll.setVisibility(View.VISIBLE);
aislehdrll.setBackgroundColor(ContextCompat.getColor(context, R.color.colorlistviewsubheading));
} else {
aislehdrll.setVisibility(View.GONE);
}