Фрагмент и деятельность - PullRequest
0 голосов
/ 15 мая 2018

Я делаю свой проект, и я пытаюсь сделать как 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 голосов
/ 24 мая 2018

попробуйте

<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

0 голосов
/ 15 мая 2018

Проблема с вашим макетом в том, что ваш FrameLayout заполняет ваш макет активности.

Вы можете исправить это, добавив корневой макет, определяющий, где находится позиция FrameLayout в соответствии с вашим contain_main. Примерно так:

<?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 на RelativeLayout или LinearLayout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...