我看到了有关此错误的所有问题和答案,但我无法解决。
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = view;
ViewHolder holder;
if (v == null) {
v = mInflater.inflate(R.layout.grid_item, viewGroup, false);
holder=new ViewHolder();
holder.rel_pie_l=(RelativeLayout) v.findViewById(R.id.rel_pie_l);
v.setTag(holder);
}else{
holder=(ViewHolder)v.getTag();
}
holder.rel_pie_l.removeAllViews();
ViewGroup.LayoutParams params = holder.rel_pie_l.getLayoutParams();
params.height = mItems.get(i).rel_size;
holder.rel_pie_l.setLayoutParams(params);
holder.rel_pie_l.addView(mItems.get(i).rel_pie_l);
return v;
}
当列表视图中的键盘处于活动状态时,出现错误,而当键盘消失时,添加视图行中出现错误
我该如何解决?我使用删除视图。
答案 0 :(得分:0)
删除此-
holder.rel_pie_l.removeAllViews();
然后像这样更改代码的最后一部分-
ViewGroup.LayoutParams params =
holder.rel_pie_l.getLayoutParams();
params.height = mItems.get(i).rel_size;
holder.rel_pie_l.setLayoutParams(params);
if(holder.rel_pie_l.getParent() != null) {
((ViewGroup)holder.rel_pie_l.getParent()).removeView(holder.rel_pie_l);
}
holder.rel_pie_l.addView(mItems.get(i).rel_pie_l);
答案 1 :(得分:0)
错误的原因是您的视图mItems.get(i).rel_pie_l
已经具有在xx.xml
文件中定义的父级布局,因此您无法将该视图添加到另一个视图。
另外,您无需删除视图并重新添加视图即可使setLayoutParams
工作。只需直接设置它们,然后删除removeAllViews
和addView