gpt4 book ai didi

android - listview recyclerview 问题?

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

我有一个 ListView ,其中我有一个 View ,我已经为其设置了可见性。现在在按钮上单击此 ListView 的子元素之一我想显示此 View ,但它显示在多个位置listview。我知道这是由于回收 View 造成的,但我无法为其实现解决方案。有人有建议吗,这是我的代码

if(convertView == null)
{
convertView = inflator.inflate(R.layout.fragment_open_orders_row, null);
fulfilledView = new FulFilledOrdersHolder();

fulfilledView.title = (TextView) convertView.findViewById(R.id.tv_open_order_title);
fulfilledView.order_datetime = (TextView) convertView.findViewById(R.id.tv_open_order_datetime);
fulfilledView.customer_address = (TextView) convertView.findViewById(R.id.tv_open_order_address);
fulfilledView.customer_name = (TextView) convertView.findViewById(R.id.tv_open_order_name);
fulfilledView.product_price = (TextView) convertView.findViewById(R.id.tv_open_order_price);

fulfilledView.product_image = (ImageView) convertView.findViewById(R.id.imv_open_orders);

fulfilledView.details = (Button) convertView.findViewById(R.id.button_open_orders_details);
fulfilledView.call = (Button) convertView.findViewById(R.id.button_open_orders_call);

fulfilledView.slide = (RelativeLayout) convertView.findViewById(R.id.sliding);
fulfilledView.slide.setVisibility(View.GONE);
convertView.setTag(fulfilledView);
}
else
{
fulfilledView = (FulFilledOrdersHolder) convertView.getTag();
}

fulfilledView.title.setText(values.get(position).getTitle());
fulfilledView.order_datetime.setText(values.get(position).getOrder_datetime());


fulfilledView.details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

fulfilledView.slide.setVisibility(View.VISIBLE);

}
});

最佳答案

尝试在默认值为 false 的列表项模型类中添加一个 bool 标志:

private boolean isSlideVisible;

public boolean isSlideVisible() {
return isSlideVisible;
}

public void setSlideVisible(boolean isSlideVisible) {
this.isSlideVisible = isSlideVisible;
}

现在更改特定项目的标志反之状态并通知适配器:

fulfilledView.details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(values.get(position).isSlideVisible()){
values.get(position).setSlideVisible(false);
}else{
values.get(position).setSlideVisible(true);
}
notifyDataSetChanged ()
}
});

根据标志值显示幻灯片 View :

if(values.get(position).isSlideVisible()){
fulfilledView.slide.setVisibility(View.VISIBLE);
}else{
fulfilledView.slide.setVisibility(View.GONE);
}

关于android - listview recyclerview 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26970352/

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