カード ビューのレイアウトを定義するためにパーセント相対レイアウトを使用しています。幅と水平マージンの属性を定義するときにうまく機能します。ただし、高さとマージンの上/下をパーセンテージで定義しても、レイアウトには影響しません。これが私のカードレイアウトのxmlです:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="10dp"
app:cardBackgroundColor="@color/cardview_light_background"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/exam_card">
<android.support.percent.PercentRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:textStyle="bold"
android:textColor="@color/colorPrimaryDark"
app:layout_widthPercent="60%"
android:layout_height="wrap_content"
android:textSize="30sp"
android:id="@+id/exam_name"/>
<TextView
app:layout_marginLeftPercent="58.5%"
app:layout_marginStartPercent="58.5%"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
app:layout_widthPercent="20%"
android:id="@+id/from_test_date"
android:layout_height="wrap_content"
android:textSize="28sp"
/>
<TextView
app:layout_widthPercent="20%"
app:layout_marginLeftPercent="56%"
app:layout_marginStartPercent="56%"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:layout_below="@+id/from_test_date"
android:id="@+id/from_time_year"
android:layout_height="wrap_content"
android:textSize="13sp"
/>
<View
app:layout_marginLeftPercent="73%"
app:layout_marginRightPercent="24%"
android:id="@+id/divider"
android:layout_width="match_parent"
android:layout_height="4dp"
android:background="@color/colorPrimaryDark"/>
<TextView
app:layout_marginLeftPercent="79.5%"
app:layout_marginStartPercent="79.5%"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
app:layout_widthPercent="20%"
android:id="@+id/to_test_date"
android:layout_height="wrap_content"
android:textSize="28sp"
/>
<TextView
app:layout_marginLeftPercent="77%"
app:layout_marginStartPercent="77%"
android:textColor="@color/colorPrimary"
android:textStyle="bold"
android:layout_below="@+id/to_test_date"
app:layout_widthPercent="20%"
android:id="@+id/to_time_year"
android:layout_height="wrap_content"
android:textSize="13sp"
/>
</android.support.percent.PercentRelativeLayout>
</android.support.v7.widget.CardView>