我是靠谱客的博主 拼搏草莓,最近开发中收集的这篇文章主要介绍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

最后

以上就是拼搏草莓为你收集整理的LinearLayout-控件不显示的全部内容,希望文章能够帮你解决LinearLayout-控件不显示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部