片段和活动

时间:2018-05-15 02:39:31

标签: android android-fragments

我正在做我的项目,我正在尝试做1 activity,其他人将是fragment。但我现在面临的问题是,在我activity_main.xml中实施<FrameLayout>后,activity_main.xml的主要内容并未像往常一样显示。

但问题是片段活动正在显示而不是主要活动内容。 有人可以给我一些关于实现片段的正确方法的例子,并且可以同时运行片段和活动吗?

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/white"
    android:fitsSystemWindows="true">


    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/detail_backdrop_height"
        android:fitsSystemWindows="true"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsing_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="?attr/colorPrimary"
            app:expandedTitleMarginEnd="64dp"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleTextAppearance="@android:color/transparent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">


            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/backdrop"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:fitsSystemWindows="true"
                    android:scaleType="centerCrop"
                    app:layout_collapseMode="parallax" />


            </RelativeLayout>

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />


        </android.support.design.widget.CollapsingToolbarLayout>


    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/frameLayout"
    android:background="@drawable/login_background">
</FrameLayout>


</android.support.design.widget.CoordinatorLayout>

PS 抱歉迟到编辑。这是我工作的截图。

这是在添加<FrameLayout>之前,一切看起来都不错:

before

这是在添加<FrameLayout>之后隐藏了活动:

after

2 个答案:

答案 0 :(得分:1)

试试这个

<FrameLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/viewPage"
android:background="YOUR_BACKGROUND_COLOR">
...
...

</FrameLayout>

将其作为coordinatorLayout

的父级

答案 1 :(得分:0)

您的布局问题是您的FrameLayout正在填充您的活动布局。

您可以通过添加根布局来修复它,根据您的contain_main确定FrameLayout的位置。像这样:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    ...>

       <RelativeLayout
           android:layout_width="match_parent"
           android:layout_height="match_parent>

          <include layout="@layout/content_main"
              android:id="@+id/content_main_ly"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"/>

          <FrameLayout
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:id="@+id/frameLayout"
              android:layout_below="@+id/content_main_ly"
              android:background="@drawable/login_background">
          </FrameLayout>

    </RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

您需要确保content_main的位置在activity_main.xml中,以便始终高于或显示。尝试将CoordinatorLayout内的所有视图移至RelativeLayoutLinearLayout