标签:
今天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>
标签:
原文地址:http://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_LinearLayout_150303205.html