视图在设备中不可见,但在XML中可见

时间:2017-10-21 05:13:04

标签: android android-relativelayout

我正在尝试使用右箭头和垂直线构建一个布局,右侧有2个文本视图。

此布局将用于RecyclerView

这是我正在使用的代码,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:clickable="true"
    android:id="@+id/rootLayout"

    >
    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/white"            
        android:layout_margin="@dimen/app_margin"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="4dp"
        >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:padding="5dp"
            >

            <View
                android:layout_width="20dp"
                android:layout_height="match_parent"
                android:layout_alignParentStart="true"
                android:id="@+id/lineView"
                android:layout_marginLeft="15dp"
                android:background="@color/colorPrimary"
                />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/name"
                android:layout_toRightOf="@+id/lineView"


                />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/type"
                android:layout_toRightOf="@+id/lineView"
                android:layout_below="@+id/name"

                />


            <android.support.v7.widget.AppCompatImageView
                android:layout_width="50dp"
                android:layout_height="50dp"
                app:srcCompat="@drawable/right_arrow"
                android:layout_alignParentEnd="true"
                android:layout_centerInParent="true"

                android:id="@+id/right_arrow"
                />

        </RelativeLayout>

        </android.support.v7.widget.CardView>


</LinearLayout>

这是上述布局的结果

enter image description here

当我在设备上运行输出时,蓝线不可见,但在XML中可见,如图所示

我的问题

  1. 如何在设备中显示它?
  2. 蓝线非常大我试过wrap_content但仍然无效

2 个答案:

答案 0 :(得分:0)

根据内容拟合该行使用此

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white">

                   <View
                    android:layout_width="20dp"
                    android:layout_height="match_parent"
                    android:layout_alignParentStart="true"
                    android:id="@+id/lineView"
                    android:layout_marginLeft="15dp"
                    android:background="@color/colorPrimary"
                    />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/name"
                    android:layout_toRightOf="@+id/lineView"


                    />
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/type"
                    android:layout_toRightOf="@+id/lineView"
                    android:layout_below="@+id/name"

                    />
<LinearLayout />

答案 1 :(得分:0)

您可以简单地将lineView与文字视图的高度对齐。否则它会增长到设备高度。请参阅此示例。

<?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_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="10dp"
    app:cardBackgroundColor="#FFFFFF"
    app:contentPadding="10dp">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical">

        <View
            android:id="@+id/view"
            android:layout_width="20dp"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/linearLayout"
            android:layout_alignParentTop="true"
            android:background="@color/colorPrimary" />

        <LinearLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_toEndOf="@+id/view"
            android:orientation="vertical"
            android:padding="10dp">

            <TextView
                android:id="@+id/name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="ABCD"
                android:textSize="15sp" />

            <TextView
                android:id="@+id/value"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="ABCD"
                android:textSize="15sp" />
        </LinearLayout>

        <ImageView
            android:id="@+id/img"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentEnd="true"
            android:layout_centerVertical="true"
            app:srcCompat="@drawable/ic_keyboard_arrow_right_black_24px" />
    </RelativeLayout>
</android.support.v7.widget.CardView>

以上示例的屏幕截图: enter image description here