我怎样才能添加更多相同的布局而不是一个
View v = (LinearLayout) inflater.inflate(R.layout.tab_frag2_layout,container, false);
RelativeLayout tv = (RelativeLayout) inflater.inflate(R.layout.post_layout,container,false);
RelativeLayout tv2 = (RelativeLayout) inflater.inflate(R.layout.post_layout,container,false);
((LinearLayout) v).addView(tv);
((LinearLayout) v).addView(tv);
((LinearLayout) v).addView(tv);
((LinearLayout) v).addView(tv);
((LinearLayout) v).addView(tv);
如果我这样做它会给我错误然后如果我这样做它只显示一次
View v = (LinearLayout) inflater.inflate(R.layout.tab_frag2_layout,container, false);
RelativeLayout tv = (RelativeLayout) inflater.inflate(R.layout.post_layout,container,false);
RelativeLayout tv2 = (RelativeLayout) inflater.inflate(R.layout.post_layout,container,false);
((LinearLayout) v).addView(tv);
((LinearLayout) v).addView(tv2);
请帮忙做什么
最佳答案
首先,cast没有意义:
View v = (LinearLayout) inflater.inflate(R.layout.tab_frag2_layout, container, false);
移除转换,或将 v
的类型更改为 LinearLayout
。
如果您能为您的日志猫提供错误消息会更好,但我想您会在此处收到 ClassCastException
:
((LinearLayout) v).addView(tv);
也许您的 v
不是 LinearLayout
?如果您不确定,请试试这个:
((ViewGroup) v).addView(tv);
编辑
当您展开布局时,将创建 View
的实例。一个 View
不能有超过 1 个父级,所以当你这样做时:
.addView(tv);
.addView(tv);
操作系统认为您正在尝试向 tv
添加另一个父级(这是被禁止的,因此会抛出异常)
关于android - 如何在单个布局程序化中添加多个布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12177211/