如何使用xml

时间:2018-04-06 11:23:55

标签: android android-constraintlayout android-relativelayout

我正在尝试将relativelayout放在另一个(在其中包含recyclerview)的活动布局容器中。

我想得到的是获得操作栏,然后在带有标题的relativelayout下方(显示间隔符和2个textviews),再下面是另一个将从recyclerview托管卡片的relativelayout。 这是想要的设计的图像:

desired design

我得到的是:

result design

我正在使用以下xml(但尝试了很多其他的)

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:theme="@style/Theme.AppCompat.Light">

    <RelativeLayout
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        tools:ignore="UselessParent">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_centerInParent="true"
            android:contentDescription="image"
            android:scaleType="centerCrop"
            android:src="@drawable/category_detail_1" />

        <TextView
            android:id="@+id/spacer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingEnd="5dp"
            android:paddingStart="5dp"
            android:text=""
            android:textColor="#fff"
            android:textSize="25sp" />

        <TextView
            android:id="@+id/sub_header_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/spacer"
            android:background="#66555555"
            android:paddingEnd="5dp"
            android:paddingStart="5dp"
            android:text=""
            android:textColor="#fff"
            android:textSize="30sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/sub_header_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/sub_header_title"
            android:background="#66555555"
            android:paddingEnd="5dp"
            android:paddingStart="5dp"
            android:text=""
            android:textColor="#fff"
            android:textSize="20sp" />

    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/button_container"
        android:layout_width="395dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:orientation="vertical"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/header"
        tools:ignore="UselessParent">

        <android.support.v4.widget.Space
            android:layout_width="@dimen/default_spacing_small"
            android:layout_height="@dimen/default_spacing_small" />

    </RelativeLayout>

</android.support.constraint.ConstraintLayout>

我试图将第二个RelativeLayout嵌套为第一个没有运气的孩子。

Android Studio预览显示设计格式正确,但在构建之后,卡列表与标题重叠。格式良好,除了未知的行/约束我不知道如何删除。它将第二个relativelayout限制在顶部。

android studio design preview

我错过了什么? 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

使用FrameLayout代替android.support.constraint.ConstraintLayout

或尝试使用LinearLayout