我在Xamrin android中使用RelativeLayout的布局代码有问题吗?

时间:2019-07-03 13:54:08

标签: android android-layout xamarin

此布局具有三个控件:两个工具栏和一个框架布局。我想要两个工具栏一个在布局底部,另一个在布局顶部。框架布局位于它们之间。我有这样的代码,但是它始终会显示错误消息“找不到与给定名称匹配的资源(在'layout_above'处值为'@ id / bottomToolBar')”。我很确定我已经设置了底部toolBar的ID。我好绝望。预先非常感谢。

<RelativeLayout 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:layout_width="match_parent"
    android:layout_height="match_parent">
<android.support.v7.widget.Toolbar
    android:id="@+id/mainToolBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:background="@color/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:titleTextColor="#FFFFFF"
    app:title="Musics">
</android.support.v7.widget.Toolbar>
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/mainToolBar"
    android:layout_above="@id/bottomToolBar"
    android:id="@+id/fragmentsContainer"
    />

<android.support.v7.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:id="@+id/bottomToolBar"
    android:minHeight="?attr/actionBarSize"
    android:background="#EFEFEF">
</android.support.v7.widget.Toolbar>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

是的。当您的FrameLayout被解析时,解析器将尝试解析所有ID。因此,它也尝试查找bottomToolBar。但是,此时bottomToolBar在您的R.java / Resource.cs文件中不存在,因此无法找到。 此ID稍后在此行的第二个Toolbar中创建:

android:id="@+id/bottomToolBar"

+指示如果此引用不存在ID,则必须创建一个新ID。然后将其添加到Xamarin的R.java文件或Resource.cs文件中。

因此,解决方法是:在从+FrameLayout的引用中添加一个bottomToolBar,以便在您尝试引用bottomToolBar时创建一个ID。 :

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/mainToolBar"
    android:layout_above="@+id/bottomToolBar"
    android:id="@+id/fragmentsContainer"
    />

来源:https://developer.android.com/guide/topics/ui/declaring-layout#id