我有一个我正在扩展的LinearLayout,我想动态地添加一个ViewFlipper和Views。谁能告诉我为什么这会出现空白屏幕?
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
ViewFlipper vf = new ViewFlipper(context);
vf.layout(l, t, r, b);
this.addView(vf);
TextView tv = new TextView(context);
tv.setText("FOO");
tv.setBackgroundColor(Color.WHITE);
vf.addView(tv, 0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
}
答案 0 :(得分:4)
我制作了这个示例代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
ViewFlipper vf = new ViewFlipper(this);
vf.layout(10, 100, 100, 150);
LinearLayout ll = new LinearLayout(this);
TextView tv = new TextView(this);
tv.setText("Prueba");
ll.addView(tv);
ll.addView(vf);
TextView tv2 = new TextView(this);
tv2.setText("FOO");
tv2.setBackgroundColor(Color.WHITE);
vf.addView(tv2, 0, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
setContentView(ll);
}
获得了预期的结果,而不是你发现的结果。 也许您应该检查布局中的填充类型。
答案 1 :(得分:2)
您是否覆盖了onMeasure()方法?我认为你需要这样做,否则View的大小不正确。如果我错了,请有人纠正我