您好我有两个卡片视图,每个卡片视图都包含在一个相对布局中,并且使用了layout_below属性但是它似乎没有工作,所有下面的代码都包含在一个framelayout中,不确定这是否是一个问题。我已经尝试将布局更改为线性并且有效,但我希望改为使用相对布局。
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/breakfast_view">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/breakfast_card"
android:layout_width="match_parent"
android:layout_height="100dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/info_heading"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="Breakfast"
android:paddingBottom="5dp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/breakfast_view">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/overview"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="10dp"
card_view:cardCornerRadius="1dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<View
android:id="@+id/info_spliter"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#E0E0E0"
android:layout_below="@+id/info_tester"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
答案 0 :(得分:0)
您未引用info_tester
layout_below
引用的ID info_splitter
。即使已定义,也只能引用同一RelativeLayout
元素中的兄弟。也就是说,您的CardView
元素或您想要相对定位的任何其他元素应位于相同的RelativeLayout
元素中,以便您能够使用layout_below
将它们相对于彼此定位
答案 1 :(得分:0)
正如您所说的那样,您正在使用框架布局来解决问题所在 因为框架布局中的每个根元素都被视为一个单独的框架,因此请尝试使用相对布局作为父项,如下所示,或者在框架布局中使用单个子项,然后在子项中添加视图
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".AudioPlayerFragment">
<!-- TODO: Update blank fragment layout -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/breakfast_view">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/breakfast_card"
android:layout_width="match_parent"
android:layout_height="100dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<TextView
android:id="@+id/info_heading"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="Breakfast"
android:paddingBottom="5dp"/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/breakfast_view">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/overview"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="10dp"
card_view:cardCornerRadius="1dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp">
<View
android:id="@+id/info_spliter"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#E0E0E0" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
</RelativeLayout>