Фрагмент и активность

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

Фрагмент и активность

Это после добавления <FrameLayout>, за которым скрывается активность:

Фрагмент и активность

вы можете отредактировать вопрос и включить xml?

dave 15.05.2018 04:40

@Aquaballin проверь еще раз. что не так с моим вопросом?

David Adam 15.05.2018 05:03
0
2
101
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проблема с вашим макетом заключается в том, что 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.

переместить весь вид (в моем случае), то есть AppBarLayout, CollapsingToolbarLayout и все такое? а внутри пустой RelativeLayout как этот <RelativeLayout android:layout_width = "match_parent" android:layout_height = "match_parent>?

David Adam 15.05.2018 06:58

Что-то вроде того. Вам нужно это проверить.

ישו אוהב אותך 15.05.2018 07:07

Попробуйте набросать свой дизайн и добавить его в свой вопрос, чтобы все знали, какой интерфейс вы ожидаете.

ישו אוהב אותך 15.05.2018 07:12

Нет проблем, не нужно сожалеть об этом;)

ישו אוהב אותך 15.05.2018 07:18

Мне интересно, не могу ли я решить эту проблему, это хороший способ для меня использовать активность для замены всей моей активности фрагмента вместо использования фрагмента.

David Adam 15.05.2018 07:34
Ответ принят как подходящий

попробуй это

<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

ЧТО FCK. спасибо .. вот что я так долго искал. БЛАГОДАРНОСТЬ

David Adam 24.05.2018 08:01

Другие вопросы по теме