Quiero agregar el diseño de forma dinámica. En realidad, en mi aplicación estoy haciendo una sección de comentarios. La vista para el comentario la hice en LinearLayout y dentro de ella agregué el botón ImageView (UserPics), Edittext y Post.

XML para comentarios es así:

<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>

Ahora, dado que varios usuarios pueden agregar los comentarios. Quiero que tan pronto como un usuario ingrese el comentario, se debe agregar dinámicamente un nuevo diseño como este debajo del comentario anterior.

-3
anand 19 feb. 2015 a las 07:57

2 respuestas

La mejor respuesta

Debe crear una vista xml de la fila de comentarios e inflarla en tiempo de ejecución y agregarla a la Vista principal.

Digamos que comment.xml es la vista de la fila de comentarios que se agregará dinámicamente para inflarla, siga a continuación:

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

Puede configurar cualquier cosa en la fila de comentarios usando el objeto de vista y llamando a findViewById. De esta manera, no hay ningún código de preparación de diseño en el archivo java que lo haga realmente simple como lo hacemos en getView del adaptador :)

Si se atascó en algún lugar de los pasos, hágamelo saber.

2
varun bhardwaj 19 feb. 2015 a las 05:23

Suponiendo que tenga una identificación en LinearLayout

Luego en el archivo java

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

Para configurar ID en su diseño

someLayout.setId (12); //ID should be of integer type.
1
Murtaza Khursheed Hussain 19 feb. 2015 a las 06:46