addView()不显示视图

时间:2014-07-19 08:50:30

标签: android view

private void showText(){
textView.setText(Html.fromHtml(text));
Log.d("MyLog","tags.size="+tags.size());
for (int i=0;i<tags.size();i++){
     Button button = new Button(context);
        button.setText(tags.get(i));
        ll.addView(button, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
    tagButtons.add(button);
}
}

这应该很简单,但这个按钮不显示。我检查了logs- tags.size = 5所以问题不在此。 ll是LinearLayout

这是布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ScrollView
        android:layout_margin="5dp"
        android:id="@+id/scrollView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >



        <LinearLayout
            android:orientation="horizontal"
            android:id="@+id/ll2"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
                <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="TextView" />
                        <LinearLayout
            android:id="@+id/ll"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </LinearLayout>
    </LinearLayout>
    </ScrollView>

</RelativeLayout>

所以,这是一个非常简单的代码,我不明白为什么没有将这些视图添加到ID为“ll”的布局中

2 个答案:

答案 0 :(得分:0)

您应该在父布局上调用invalidate(),强制在屏幕上绘制儿童

答案 1 :(得分:0)

删除您未在问题中发布的linearlayout引用,并像我一样使用试试

  • showText()中调用OnCreate - 方法如果您正在使用活动

private void showText(){ 
    textView.setText(Html.fromHtml(text));
    for (int i=0;i<tags.size();i++){
        Button button = new Button(context);
        button.setText(tags.get(i));
        LinearLayout ll=(LinearLayout) findViewById(R.id.ll);
        ll.addView(button);
    } 
}