添加工具栏下方的片段

时间:2015-11-29 01:33:12

标签: android android-layout android-fragments relativelayout toolbar

我有activity.xml

如您所见,它是相对布局。我希望包含片段的Frame布局将位于工具栏下方。

肯定会添加片段。但它在顶部添加,覆盖工具栏。只是想知道我做错了什么。

网站不会因为某些原因让我添加代码。它告诉我它没有正确格式化。这是activity.xml布局。



<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    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="match_parent" android:fitsSystemWindows="true"
    >

    <!--scroll|snap-->
    <android.support.v7.widget.Toolbar
        android:id="@+id/appToolBar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/toolBarHeight"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <FrameLayout
        android:id="@android:id/content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/appToolBar"/>

</RelativeLayout>
&#13;
&#13;
&#13;

这就是我在Activity.java文件中所做的。

getFragmentManager().beginTransaction().add(android.R.id.content, SetupFrag.createInstance(false), SETUP_FRAGMENT).commit();

2 个答案:

答案 0 :(得分:3)

您正在使用现有ID @android:id/content

您应该使用+添加自己的ID @+id/content,否则片段将被添加到内容视图(活动布局上方的级别)。

答案 1 :(得分:1)

您应该使用不同的根布局。

RelativeLayout将相对于彼此布置其子项。 您想要的是具有垂直方向的LinearLayout

<?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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical"
    >

    <android.support.v7.widget.Toolbar
        android:id="@+id/appToolBar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/toolBarHeight"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>