使用<include>的布局未拉伸以匹配父级

时间:2018-11-06 07:49:28

标签: android android-layout

主要布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"
        android:clipToPadding="true"
        android:paddingStart="16dp"
        android:paddingEnd="32dp">

        <include
            android:id="@+id/sideBar"
            layout="@layout/layout_side_bar"
            android:layout_width="wrap_content"
            android:layout_height="match_parent" />

        <TextView
            android:id="@+id/tv_name"
            style="@style/ListItemText"
            android:layout_alignParentTop="true"
            android:layout_marginTop="21dp"
            android:layout_toEndOf="@id/sideBar"
            android:gravity="center"
            android:letterSpacing="-0.02"
            android:text="@string/xyz"
            android:textColor="@color/blue"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tv_desc"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/tv_name"
            android:layout_marginStart="8dp"
            android:layout_marginTop="9dp"
            android:layout_marginBottom="18dp"
            android:layout_toEndOf="@id/sideBar"
            android:background="@drawable/bg_text_new"
            android:drawableStart="@drawable/ic_wait_icon"
            android:drawablePadding="14dp"
            android:fontFamily="sans-serif"
            android:gravity="center_vertical"
            android:lineSpacingExtra="6sp"
            android:paddingStart="14dp"
            android:paddingTop="9dp"
            android:paddingEnd="14dp"
            android:paddingBottom="9dp"
            android:text="@string/abc"
            android:textColor="@color/primary"
            android:textSize="13sp" />

</RelativeLayout>

layout_side_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <View
        android:id="@+id/v_lineTop"
        android:layout_width="2dp"
        android:layout_height="20dp"
        android:background="@color/green" />

    <TextView
        android:id="@+id/tv_number"
        style="@style/ListItemNumber"
        android:background="@drawable/bg_circle"
        tools:text="2" />

    <View
        android:id="@+id/v_lineBottom"
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:background="@color/grey" />

</LinearLayout>

v_lineBottom中包含的layout_side_bar中ID为main layout的视图是不可见的。

仅当我为v_lineBottom视图或随附的android:id="@+id/sideBar"赋予特定高度时才会显示

我将main layout用作recycler view item

1 个答案:

答案 0 :(得分:0)

enter image description here

我得到这样的视图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:clipToPadding="true"
android:paddingStart="16dp"
android:paddingEnd="32dp"
android:paddingRight="32dp"
android:paddingLeft="16dp">

<include
    android:id="@+id/sideBar"
    layout="@layout/layout_side_bar"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" />

<TextView
    android:id="@+id/tv_name"
    android:layout_alignParentTop="true"
    android:layout_marginTop="21dp"
    android:layout_toEndOf="@id/sideBar"
    android:gravity="center"
    android:letterSpacing="-0.02"
    android:text="xys"
    android:textColor="@color/blue"
    android:textStyle="bold"
    android:layout_toRightOf="@id/sideBar"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

<TextView
    android:id="@+id/tv_desc"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tv_name"
    android:layout_marginStart="8dp"
    android:layout_marginTop="9dp"
    android:layout_marginBottom="18dp"
    android:layout_toEndOf="@id/sideBar"

    android:drawablePadding="14dp"
    android:fontFamily="sans-serif"
    android:gravity="center_vertical"
    android:lineSpacingExtra="6sp"
    android:paddingStart="14dp"
    android:paddingTop="9dp"
    android:paddingEnd="14dp"
    android:paddingBottom="9dp"
    android:text="@string/acre"
    android:textColor="@color/black"
    android:textSize="13sp"
    android:layout_marginLeft="8dp"
    android:layout_toRightOf="@id/sideBar" />

 </RelativeLayout>

和layout_side_bar

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical">

<View
    android:id="@+id/v_lineTop"
    android:layout_width="2dp"
    android:layout_height="20dp"
    android:background="@color/blue" />

<TextView
    android:id="@+id/tv_number"
    tools:text="2"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content" />

<View
    android:id="@+id/v_lineBottom"
    android:layout_width="2dp"
    android:layout_height="match_parent"
    android:background="@color/black" />

</LinearLayout>

您能否以您想要实现的方式显示视图的图形表示。