不是同一个RelativeLayout中的兄弟姐妹?

时间:2017-10-17 12:57:36

标签: java android android-studio kotlin

您好我开始使用Android开发。我只是用Android Studio修改一个开源示例。

我只修改了string.xml和一些.png文件。在Android模拟器中它工作得很完美但是当我尝试生成签名的Apk文件时,我收到两个类似描述的错误。

这是其中之一(行标有*):

  

错误:(33)错误:@ id / linear_adview不是同一个兄弟   RelativeLayout [Not Sibling]

2 个答案:

答案 0 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/rl_content_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background">
 <LinearLayout`enter code here`
        android:id="@+id/linear_adview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <com.google.android.gms.ads.AdView
            android:id="@+id/ad_view_editimg"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ads:adSize="BANNER"

 <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/sticker_recycler_view"
            android:layout_below="@id/linear_adview">

            <FrameLayout
                android:id="@+id/sticker_framelayout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@id/linear_adview">


                <ImageView
                    android:id="@+id/pic_edit_imageview"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:padding="5dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/background"

                    />

                <include
                    layout="@layout/text_layout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" />

            </FrameLayout>


        </RelativeLayout>
    </LinearLayout>
    <android.support.v7.widget.RecyclerView
            android:id="@+id/sticker_recycler_view"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:visibility="visible"
            android:layout_above="@+id/linearLayout" />

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="@color/colorPrimary"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/smoke_tv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:clickable="true"
            android:background="@color/black"
            android:gravity="center"
            android:text="@string/smoke"
            android:textColor="@color/white"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/text_tv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:clickable="true"
            android:gravity="center"
            android:text="@string/text"
            android:textColor="@color/white"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/share_tv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_vertical"
            android:layout_weight="1"
            android:gravity="center"
            android:clickable="true"
            android:text="@string/share"
            android:textColor="@color/white"
            android:textSize="18sp" />
    </LinearLayout>
</RelativeLayout>`
`

答案 1 :(得分:0)

使用android:id="@+id/sticker_framelayout"的FrameLayout并不是LinearLayout与android:id="@+id/linear_adview"的直接兄弟,而且这也是您无法使用android:layout_below="@id/linear_adview"的原因。实际上,您可以将RelativeLayout和FrameLayout合并到一个视图中:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/sticker_recycler_view"
        android:layout_below="@id/linear_adview">

        <FrameLayout
            android:id="@+id/sticker_framelayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/linear_adview">

(...)

        </FrameLayout>

<FrameLayout
            android:id="@+id/sticker_framelayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/sticker_recycler_view"
            android:layout_below="@id/linear_adview">

(...)

</FrameLayout>