LinearLayout-控件不显示

今天Mms遇到了一个问题,布局如下

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginRight="45dp"
                android:layout_marginTop="1dp" >

                           
                 <
LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" > <LinearLayout android:id="@+id/mms_layout_view_parent" android:maxWidth="100dp" android:adjustViewBounds="true" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="14dp" android:background="@drawable/listitem_background_recv" android:gravity="left|center_vertical" android:orientation="vertical" > <TextView android:id="@+id/sender_name" style="@style/group_member_name_style" android:visibility="gone" /> <View android:id="@+id/sender_name_separator" style="@style/bubble_name_separator_style" android:visibility="gone" /> <TextView android:id="@+id/text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:autoLink="all" android:linksClickable="false" android:paddingLeft="5dp" android:textColor="#323232" android:textSize="14sp" /> <ViewStub android:id="@+id/mms_layout_view_stub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout="@layout/mms_layout_view" android:paddingLeft="@dimen/message_item_text_padding_left_right" android:paddingRight="@dimen/message_item_text_padding_left_right" />
                         <TextView android:id="@+id/text_expire" android:layout_width="wrap_content" android:layout_height="wrap_content" android:adjustViewBounds="true" android:linksClickable="false" android:maxWidth="246dp" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="@color/text_expire_color" android:textSize="14sp" android:visibility="gone" > </TextView> <!-- file attachment view --> <ViewStub android:id="@+id/mms_file_attachment_view_stub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:layout_marginLeft="6dp" android:layout_marginRight="8dp" android:layout_marginTop="3dip" android:layout="@layout/file_attachment_view" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:id="@+id/mms_all_status" android:layout_height="wrap_content" android:layout_toRightOf="@id/mms_layout_view_parent" android:layout_marginLeft="1dp" android:layout_centerVertical="true" android:orientation="horizontal" >
                        <TextView android:id="@+id/send_time_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:paddingLeft="10dip" android:textColor="#555555" android:textSize="10sp" android:visibility="gone" /> <!-- @} --> <!-- For show dual date @{ --> <LinearLayout android:id="@+id/double_time_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:gravity="center_vertical" android:orientation="horizontal" android:visibility="gone" > <TextView android:id="@+id/recv_time_img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:paddingLeft="10dip" android:textColor="#555555" android:textSize="10sp" /> <TextView android:id="@+id/recv_date_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:paddingLeft="4dip" android:textColor="#555555" android:textSize="10sp" />
                             <TextView android:id="@+id/time_zone_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" android:paddingLeft="20dip" android:textColor="#555555" android:textSize="10sp" /> </LinearLayout> <!-- @} --> <ImageView android:id="@+id/delivered_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:paddingLeft="4dip" android:src="@drawable/ic_sms_mms_delivered" android:visibility="gone" /> <ImageView android:id="@+id/details_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:paddingLeft="4dip" android:src="@drawable/ic_sms_mms_details" android:visibility="gone" /> <ImageView android:id="@+id/locked_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:paddingLeft="4dip" android:src="@drawable/ic_lock_message_sms" android:visibility="gone" />     
                         <ImageView android:id="@+id/important_indicator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|center_vertical" android:paddingLeft="4dip" android:src="@drawable/ic_important" android:visibility="gone" /> </LinearLayout> </LinearLayout> </RelativeLayout>

你会发现这个布局存在两个问题,一个就是、

 <LinearLayout
                        android:id="@+id/mms_layout_view_parent"
                        android:maxWidth="100dp"
                        android:adjustViewBounds="true"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="14dp"
                        android:background="@drawable/listitem_background_recv"
                        android:gravity="left|center_vertical"
                        android:orientation="vertical" >

maxwidth不起作用,另外一个就是

你会发现

<LinearLayout
                        android:layout_width="wrap_content"
                        android:id="@+id/mms_all_status"
                        android:layout_height="wrap_content"
                        android:layout_toRightOf="@id/mms_layout_view_parent"
                        android:layout_marginLeft="1dp"
                        android:layout_centerVertical="true"
                        android:orientation="horizontal" >

它不会显示。具体原因不清出。

我们想要实现的功能就是,让mms_all_status  里面的内容能够显示或者隐藏,而且它紧跟着 mms_layout_view_parent 后面,保持固定距离,虽然mms_layout_view_parent 的宽度是变化的。而当mms_layout_view_parent 达到最大宽度的时候,这时候 mms_layout_view_parent 不变,但mms_all_status 仍然可以显示

更改如下

其实非常的简单,就是当maxwidth 在LinearLayout下设定不起作用的时候,我们把这个属性放到linearLayout下的一个Textview 里面,就可以间接决定mms_layout_view_parent 的最大宽度了

更改如下

<LinearLayout
                    android:layout_marginTop="1dp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal" >
                    <LinearLayout
                        android:id="@+id/mms_layout_view_parent"
                        android:adjustViewBounds="true"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="14dp"
                        android:background="@drawable/listitem_background_recv"
                        android:gravity="left|center_vertical"
                        android:layout_gravity="left|center_vertical"
                        android:orientation="vertical" >

                        <TextView
                            android:id="@+id/sender_name"
                            style="@style/group_member_name_style"
                            android:visibility="gone" />

                        <View
                            android:id="@+id/sender_name_separator"
                            style="@style/bubble_name_separator_style"
                            android:visibility="gone" />

                        <TextView
                            android:id="@+id/text_view"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:adjustViewBounds="true"
                         <!--关键-->
                            android:maxWidth="250dp"
                            android:autoLink="all"
                            android:linksClickable="false"
                            android:paddingLeft="5dp"
                            android:textColor="#323232"
                            android:textSize="14sp" />

                        <ViewStub
                            android:id="@+id/mms_layout_view_stub"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_horizontal"
                            android:layout="@layout/mms_layout_view"
                            android:paddingLeft="@dimen/message_item_text_padding_left_right"
                            android:paddingRight="@dimen/message_item_text_padding_left_right" />
                            <TextView
                            android:id="@+id/text_expire"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:adjustViewBounds="true"
                            android:linksClickable="false"
                            android:maxWidth="246dp"
                            android:textAppearance="?android:attr/textAppearanceSmall"
                            android:textColor="@color/text_expire_color"
                            android:textSize="14sp"
                            android:visibility="gone" >
                        </TextView>
                        <!-- file attachment view -->

                        <ViewStub
                            android:id="@+id/mms_file_attachment_view_stub"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left"
                            android:layout_marginLeft="6dp"
                            android:layout_marginRight="8dp"
                            android:layout_marginTop="3dip"
                            android:layout="@layout/file_attachment_view" />
                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:id="@+id/mms_all_status"
                        android:layout_height="wrap_content"
                        android:gravity="left|center_vertical"
                        android:layout_gravity="left|center_vertical"
                        android:layout_marginLeft="1dp"
                        android:orientation="horizontal" >

                        <!-- For show dual date  @{ -->

                        <TextView
                            android:id="@+id/send_time_txt"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left"
                            android:paddingLeft="10dip"
                            android:textColor="#555555"
                            android:textSize="10sp"
                            android:visibility="gone" />
                          <LinearLayout
                            android:id="@+id/double_time_layout"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center_vertical"
                            android:gravity="center_vertical"
                            android:orientation="horizontal"
                            android:visibility="gone" >

                            <TextView
                                android:id="@+id/recv_time_img"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="left"
                                android:paddingLeft="10dip"
                                android:textColor="#555555"
                                android:textSize="10sp" />

                            <TextView
                                android:id="@+id/recv_date_view"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="left"
                                android:paddingLeft="4dip"
                                android:textColor="#555555"
                                android:textSize="10sp" />

                            <TextView
                                android:id="@+id/time_zone_txt"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="left"
                                android:paddingLeft="20dip"
                                android:textColor="#555555"
                                android:textSize="10sp" />
                        </LinearLayout>
                        <!-- @} -->

                        <ImageView
                            android:id="@+id/delivered_indicator"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left|center_vertical"
                            android:paddingLeft="4dip"
                            android:src="@drawable/ic_sms_mms_delivered"
                            android:visibility="gone" />
                           <ImageView
                            android:id="@+id/locked_indicator"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left|center_vertical"
                            android:paddingLeft="4dip"
                            android:src="@drawable/ic_lock_message_sms"
                            android:visibility="gone" />

                        <ImageView
                            android:id="@+id/important_indicator"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="left|center_vertical"
                            android:paddingLeft="4dip"
                            android:src="@drawable/ic_important"
                            android:visibility="gone" />
                    </LinearLayout>

                </LinearLayout>

            <ViewStub
                android:id="@+id/mms_downloading_view_stub"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout="@layout/mms_downloading_view" />
        </LinearLayout>
    </LinearLayout>
原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_LinearLayout_150303205.html