我在相对布局中有一堆线性布局,我遇到渲染问题
这是我的代码
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="110dp"
card_view:cardCornerRadius="2dp">
<!-- the innner view - provides the white rectangle -->
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff" >
<LinearLayout android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:layout_alignParentLeft="true"
android:orientation="vertical">
<LinearLayout android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="horizontal">
<ImageView android:id="@+id/ivIcon"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:padding="10dp"
android:scaleType="fitXY"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:adjustViewBounds="true"/>
<TextView android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#000"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:layout_weight="1"
android:textAppearance="@android:style/TextAppearance.Medium" />
</LinearLayout>
<LinearLayout android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="horizontal">
<TextView android:id="@+id/tvTime"
android:layout_width="100dp"
android:textColor="#000"
android:layout_height="wrap_content"
android:textAlignment="viewEnd"
android:gravity="end"
android:layout_above="@id/ivIcon"
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:paddingBottom="10dp"
android:layout_centerVertical="true"
android:textAppearance="@android:style/TextAppearance.Small" />
<TextView android:id="@+id/tvDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_centerVertical="true"
android:paddingBottom="10dp"
android:textColor="#000"
android:textAppearance="@android:style/TextAppearance.Small" />
</LinearLayout>
<LinearLayout android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="horizontal">
<TextView android:id="@+id/tvEstTime"
android:layout_width="100dp"
android:textColor="#000"
android:layout_height="wrap_content"
android:textAlignment="viewEnd"
android:gravity="end"
android:paddingRight="10dp"
android:paddingLeft="10dp"
android:paddingBottom="10dp"
android:layout_centerVertical="true"
android:textAppearance="@android:style/TextAppearance.Small" />
<TextView android:id="@+id/tvEst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_weight="1"
android:textColor="#000"
android:paddingBottom="10dp"
android:textAppearance="@android:style/TextAppearance.Small" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:layout_alignParentRight="true">
<TextView android:id="@+id/tvStatus"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_gravity="right"
android:textAllCaps="true"
android:gravity="center"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:background="@color/blue"
android:textColor="#fff"
android:textSize="8sp"/>
</LinearLayout>
</RelativeLayout>
</android.support.v7.widget.CardView>
代码的输出是
我想要的输出是
任何人都知道我在这里做错了什么?
修改
使用@ Shahar代码
后的结果答案 0 :(得分:1)
尝试这样:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="110dp"
card_view:cardCornerRadius="2dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/tvStatus"
android:background="#fff"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/ivIcon"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:background="@android:color/background_dark"
android:padding="10dp"
android:scaleType="fitXY"/>
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="some text"
android:textAppearance="@android:style/TextAppearance.Medium"
android:textColor="#000"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="horizontal">
<TextView
android:id="@+id/tvTime"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_above="@id/ivIcon"
android:layout_centerVertical="true"
android:gravity="end"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="some text"
android:textAlignment="viewEnd"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#000"/>
<TextView
android:id="@+id/tvDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_weight="1"
android:paddingBottom="10dp"
android:text="some text"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#000"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#fff"
android:orientation="horizontal">
<TextView
android:id="@+id/tvEstTime"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:gravity="end"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="some text"
android:textAlignment="viewEnd"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#000"/>
<TextView
android:id="@+id/tvEst"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_weight="1"
android:paddingBottom="10dp"
android:text="some text"
android:textAppearance="@android:style/TextAppearance.Small"
android:textColor="#000"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tvStatus"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:background="#fff"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="5dp"
android:textAllCaps="true"
android:textColor="#000"
android:textSize="8sp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
答案 1 :(得分:0)
您需要做的一件事LinearLayout
tvEstTime
和tvEst
方向vertical
,因此它可以互相攻击。同时摆脱android:layout_weight="1"
中的tvEst
。您可以尝试的另一件事是看它是否在没有textApperance设置的情况下显示。否则我尝试添加静态文本,它显示给我。