如何动态添加布局

时间:2015-02-19 04:57:10

标签: android android-layout

我想动态添加布局。实际上在我的应用程序中我正在评论部分。我已在LinearLayout和内部添加了ImageView(UserPics),Edittext和Post按钮的评论视图。

评论的XML是这样的:

<LinearLayout
    android:id="@+id/commment_section"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dip"
    android:orientation="vertical"
    android:layout_below="@+id/nmd_user_img"
    >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    >

        <ImageView
            android:id="@+id/cmt_user_image"
            android:layout_width="30dip"
            android:layout_height="30dip"
            android:layout_margin="5dip"
            android:padding="5dip"
            android:background="@color/layout_bg"/>
        <EditText
            android:id="@+id/cmt_user_edt"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/cmt_user_image"
            android:layout_marginLeft="10dip"
            android:padding="5dip"
            android:hint="Enter your comments"/>
        <ImageButton
            android:layout_width="30dip"
            android:layout_height="30dip"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_marginTop="5dip"
            android:layout_marginRight="15dip"/>

    </RelativeLayout>
</LinearLayout>

现在,由于多个用户可以添加评论。我希望用户一旦输入评论,就可以在上一条评论的下方动态添加这样的新布局。

2 个答案:

答案 0 :(得分:2)

您应该创建注释行的xml视图并对其进行充气并将其添加到父视图中。

假设comment.xml是要动态添加的评论行的视图,以便按照以下方式对其进行充气:

LayoutInflater inflator = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
        View commentView = inflator.inflate(R.layout.your_xml, null);
        commentView.setId(commentID);
        yourLinearLayout.addView(commentView);

您可以使用视图对象设置注释行中的任何内容并调用findViewById。这样在java文件中没有布局准备代码,这使得它非常简单,就像我们在适配器的getView中所做的那样:)

如果您遇到困难,请告诉我。

答案 1 :(得分:1)

假设您在LinearLayout

上有身份证明

然后在java档案

Relativelayout rl = new RelativeLayout(this);
yourLinearLayout.addView(rl);

将ID设置为布局

someLayout.setId (12); //ID should be of integer type.