gpt4 book ai didi

Android ListView丢失项目高度

转载 作者:行者123 更新时间:2023-11-30 03:30:07 25 4
gpt4 key购买 nike

所以我有一个 lisview,其中每一行/项目隐藏/显示不同的控件。

我跟踪所有数据并根据我的数据在 onItemClickgetView 中设置控件的可见性。

但是,这意味着项目的高度不同......但是当用户将具有非标准高度的项目滚动到 View 之外时,其高度将重置为标准,即使其控件可见性设置为 getView

要做什么?有没有办法强制重新计算高度?

        public View getView(int position, View convertView, ViewGroup parent) {

View view = convertView;

if(null == view)
{
LayoutInflater vi = (LayoutInflater) thisActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = vi.inflate(R.layout.override_listitem_catalog, null);
}

MyListItemExt data = objects.get(position);


if(null != data)
{
// ... do work
}

最佳答案

当滚动 ListView 时,滚动的行被重新使用并填充新数据。根据您的逻辑,当您设置按钮的可见性 onclick 列表项行时,当您滚动列表并再次来到该位置时,由于 View 被重用,该行的状态将不会保持。

您必须将 ListView 的点击位置保留在 HashMap 或 bool 数组中(如果列表中的项目数量较少),使位置索引为真。在 getView 中,使用 bool 数组值检查该位置是否已被点击。如果为真,则使按钮可见。否则使它们不可见。要清楚地了解如何使用它们,请查看我的答案 https://stackoverflow.com/a/13083795/936414

关于Android ListView丢失项目高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17592750/

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