我Listview 的每个Item很长,每个item中有若干个标签,标签可以点击折叠和关闭
比如现在有两个item,当前显示第一个item position为0,点击item内的便签都正常
,当getView返回的position是1时,第二个item只显示一点点,但是操作第一个item的点击事件
都在第二个item中有反应,请问这是为什么(ps:取消复用机制也没作用)
你是否使用了ExpandableListView 如果使用了尝试自己设置下高度
public class MyExpanableListView extends ExpandableListView {
public MyExpanableListView(Context context) {
super(context);
}
public MyExpanableListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyExpanableListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//重新设置高度
heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
更新列表时未清空原有Listview
这里是脏数据的问题,List View自身的View加载机制会导致容易产生脏数据问题,即界面列表展示混乱,子view点击错误等等,解决办法就是重写返回ID值方法,确定滑动到这个view的时候返回该view的ID,避免脏数据的问题。事实上,如果可以建议使用RecyclerView进行界面展示