Android TextView未展开以匹配父级
我有一个视图组,如下图所示: 我不想显示那些空白的文本。例如,假设我没有提示和促销,那么应该只看到注释。测试时,我的程序注释(以红色背景显示)不会展开以填充父项,尽管其宽度设置为与父项匹配 任何想法都将不胜感激。谢谢Android TextView未展开以匹配父级,android,textview,android-layout-weight,Android,Textview,Android Layout Weight,我有一个视图组,如下图所示: 我不想显示那些空白的文本。例如,假设我没有提示和促销,那么应该只看到注释。测试时,我的程序注释(以红色背景显示)不会展开以填充父项,尽管其宽度设置为与父项匹配 任何想法都将不胜感激。谢谢 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llNotesContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/tracking_bg_note"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/llNotes"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:padding="8dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tracking_notes"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvNotes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:ellipsize="end"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:background="@color/red"/>
</LinearLayout>
<View
android:id="@+id/vVerticalSeparator"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@color/tracking_separator"/>
<!-- Tips and Promos -->
<LinearLayout
android:id="@+id/llTipsPromos"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/llTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_tips"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:singleLine="true"
android:ellipsize="end"/>
</LinearLayout>
<View
android:id="@+id/vHorizontalSeparator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/tracking_separator"/>
<LinearLayout
android:id="@+id/llPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_promo"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:singleLine="true"
android:ellipsize="end"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
我甚至试图使我的文本视图无效,但没有任何改变。当我只有笔记时,结果是这样的
您的
android:padding=“8dp”
正在实现这一点
如果您想在顶部和底部添加填充,请使用
android:paddingBottom="8dp"
android:paddingTop="8dp"
如果我理解正确,您希望在没有提示和促销的情况下完全删除提示和促销字段,并显示红色注释部分以匹配父项 在这种情况下,使线性布局llTipsPromos
消失
。这将用红色注释部分填充父项请尝试下面的代码-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llNotesContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/tracking_bg_note">
<LinearLayout
android:id="@+id/llNotes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/llTipsPromos"
android:layout_alignParentLeft="true"
android:orientation="vertical"
android:padding="8dp" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tracking_notes"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvNotes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:ellipsize="end"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:background="@color/red"/>
</LinearLayout>
<View
android:id="@+id/vVerticalSeparator"
android:layout_toRightOf="@+id/llNotes"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@color/tracking_separator"/>
Tips and Promos
<LinearLayout
android:id="@+id/llTipsPromos"
android:layout_width="wrap_content"
android:layout_alignParentRight="true"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/llTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="visible"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_tips"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:singleLine="true"
android:ellipsize="end"/>
</LinearLayout>
<View
android:id="@+id/vHorizontalSeparator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/tracking_separator"/>
<LinearLayout
android:id="@+id/llPromos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_promo"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:singleLine="true"
android:ellipsize="end"/>
</LinearLayout>
</LinearLayout>
提示和宣传
当你想全屏显示备忘视图时,隐藏你的llTipsPromos LinearLayout。它肯定会对你有用。最后我找到了一个解决问题的方法。这就是变化:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llNotesContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/tracking_bg_note"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/llNotes"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:padding="8dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tracking_notes"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvNotes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:background="@color/red"/>
</LinearLayout>
<View
android:id="@+id/vVerticalSeparator"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@color/tracking_separator"/>
<!-- Tips and Promos -->
<LinearLayout
android:id="@+id/llTipsPromos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/llTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_tips"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"/>
</LinearLayout>
<View
android:id="@+id/vHorizontalSeparator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/tracking_separator"/>
<LinearLayout
android:id="@+id/llPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_promo"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
我认为您应该让整个布局的可见性消失。我是指id为“llTipsPromos”的布局。@Blackbelt这只是填充。我只是删除了它,虽然它看起来像上面的图片,但没有在文本视图周围填充。删除这个(llTipsPromos)线性布局块中的布局权重。否则它将不接受其他属性,也将宽度作为空数据的永久值。谢谢。虽然我还没有发现我的问题在哪里,但你的解决方案是有效的。很抱歉,我没有接受你的答案,因为测试后发现问题发生了逆转。注意事项现在扩展正确,但提示和促销没有扩展:(您找到问题的解决方案了吗?很抱歉延迟回复。请查看我的答案。您更改了什么?请提供详细信息
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/llNotesContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/tracking_bg_note"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/llNotes"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical"
android:padding="8dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tracking_notes"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvNotes"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"
android:background="@color/red"/>
</LinearLayout>
<View
android:id="@+id/vVerticalSeparator"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:background="@color/tracking_separator"/>
<!-- Tips and Promos -->
<LinearLayout
android:id="@+id/llTipsPromos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/llTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_tips"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvTips"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"/>
</LinearLayout>
<View
android:id="@+id/vHorizontalSeparator"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/tracking_separator"/>
<LinearLayout
android:id="@+id/llPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center_vertical"
android:padding="8dp">
<TextView
android:layout_width="50dp"
android:layout_height="wrap_content"
android:text="@string/tracking_promo"
android:textColor="@color/tracking_font_address"
android:textSize="13sp"/>
<TextView
android:id="@+id/tvPromos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/tracking_font_note"
android:textSize="15sp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>