作者:nnnnllll | 来源:互联网 | 2023-07-15 14:19
##实现listview条目点击显示和隐藏-主要修改适配器的getView方法声明int类型clickPosition记录点击的条目positionpublicintclickPositio
##实现listview条目点击显示和隐藏
-主要修改适配器的getView方法
public int clickPosition = -1;
- 判断clickPosition是不是和当前的position相同
if(clickPosition == position){
}else{
}
if (vh.problem_arrow.isSelected()) {
vh.problem_arrow.setSelected(false);
vh.ll_hide.setVisibility(View.GONE);
Log.e("listview","if执行");
clickPosition=-1;
} else {
vh.problem_arrow.setSelected(true);
vh.ll_hide.setVisibility(View.VISIBLE);
Log.e("listview","else执行");
}
//当填充的条目position不是刚才点击所标记的position时,让其隐藏,状态图标为false。
//而之前的滑动(未标记条目的填充)时,执行此处逻辑,已经把状态图片的selected置为false。所以上面的else中的逻辑会在标记过的条目第二次进入屏幕时执行,如果之前的状态是显示,是没什么影响的,再显示一次而已,用户看不出来,但是如果是隐藏状态,就会被重新显示出来
vh.ll_hide.setVisibility(View.GONE)
vh.selectorImg.setSelected(false)
Log.e("listview","状态改变")
- 设置点击事件,当某个条目点击时,clickPosition设置为当前position
vh.problem_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickPosition = position;
notifyDataSetChanged();
}
});
具体的例子我在github上有上传 请看https://github.com/StevenHX/Listview_itemHideShow.git
如果觉得好不要忘了star哦!!!