Android - 动态添加视图

时间:2012-03-19 20:29:37

标签: android

我有一个我正在扩展的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));

}

2 个答案:

答案 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的大小不正确。如果我错了,请有人纠正我