gpt4 book ai didi

java - 具有可扩展布局的 ListView

转载 作者:太空宇宙 更新时间:2023-11-04 12:21:45 24 4
gpt4 key购买 nike

我有一个 ListView,其中有数百个 item

我希望当用户点击某个项目 (onClick) 时,它会展开并显示有关它的一些详细信息。

但是我想显示一个布局,例如RelativeLayoutLinearLayout

我想我必须制作数百种布局。也许有更好的方法?

因为每个商品的描述不同(价格、国家/地区等)。

我已经知道ExpandbleListView

我不想使用 child.add("Android"); 因为我希望扩展 View 像表格 View 一样组织。

因此,当我单击它时,它会展开并显示布局。

我怎样才能实现这个目标?

最佳答案

LinearLayoutRelativeLayout 构建为列表项 View 的一部分,并将 visibility 最初设置为 false

现在跟踪全局数组中展开的项目,以便在列表中设置展开 View 的适当可见性。

我正在分享一些伪代码,可能有助于您理解。

// Take a global array to keep track of the expanded items in your list
// Lets assume the name of your list is myArrayList
private void int[] expandedItems = new int[myArrayList.size()];

// Now initialize your array with all zeros
for(int i=0; i<expandedItem.length; i++)
expandedItems[i] = 0;

现在,当单击某个项目时,会更新 expandedItems 数组中的相应位置。

itemView.setOnClickListener {
//....
@Override
public void onClick(View v){
// Set 1 to indicate the corresponding is view is expanded
expandedItems[position] = 1;
notifyDatasetChanged();
}
}

现在在您的 onBindViewHolder 中填充列表,如下所示

if(expandedItems[position] == 1)
expandedLinearLayout.setVisibility(View.VISIBLE);
else
expandedLinearLayout.setVisibility(View.GONE); // Don't forget the else part

关于java - 具有可扩展布局的 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38796750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com