LinearLayout addView not working properly

I'm having problems with the addView method from LinearLayout. I don’t know why, but if I add three views, only the first will be displayed. Here is the code:

Comment[] comments = posts[position].getComments(); LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.post_list_item_comments); layout.removeAllViews(); for(int i=0; i<comments.length; i++) { View comment = inflater.inflate(R.layout.post_list_item_comment,null); ((TextView)comment.findViewById(R.id.post_list_item_comment_name)).setText(comments[i].getFrom().getName()); ((TextView)comment.findViewById(R.id.post_list_item_comment_message)).setText(comments[i].getText()); layout.addView(comment,i); } 

I also tried with addView (comment), but with the same result.

This is the view code that I retrieve when I use findViewById mehthod.

 <LinearLayout android:id="@+id/post_list_item_comments" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="40dip" android:layout_below="@id/post_list_item_footer_text" android:visibility="gone"/> 

And this is the XML I'm inflating:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <View android:id="@+id/post_list_item_comment_divider" android:layout_width="fill_parent" android:layout_height="1dip" android:background="@drawable/divider" android:layout_marginTop="2dip" android:layout_marginBottom="2dip"/> <ImageView android:id="@+id/post_list_item_comment_photo" android:layout_width="40dip" android:layout_height="wrap_content" android:layout_below="@id/post_list_item_comment_divider" android:adjustViewBounds="true"/> <TextView android:id="@+id/post_list_item_comment_name" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_toRightOf="@id/post_list_item_comment_photo" android:layout_below="@id/post_list_item_comment_divider" android:maxLines="2" android:ellipsize="end"/> <TextView android:id="@+id/post_list_item_comment_message" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_toRightOf="@id/post_list_item_comment_photo" android:layout_below="@id/post_list_item_comment_name" android:textSize="13sp" android:maxLines="2" android:ellipsize="end"/> </RelativeLayout> 
+6
android android-linearlayout
source share
2 answers

you are not declaring the orientation of LinearLayout ... the default is Horizontal, try setting the orientation to Vertical

 <LinearLayout android:id="@+id/post_list_item_comments" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingLeft="40dip" android:layout_below="@id/post_list_item_footer_text" android:visibility="gone"/> 
+20
source share

Use the hierarchy viewer to check if there really is only 1 view added, or that you can only see one view. For example, this line android:layout_below="@id/post_list_item_footer_text" can be complicated if you repeat it? I do not know the expected behavior for this ...

+2
source share

All Articles