Сворачивающийся макет панели инструментов не будет сворачиваться

У меня есть сворачивающаяся панель инструментов, у которой есть 2 проблемы:

1) он статичен и не рушится и я не могу найти в чем причина

2) последняя строка в recyclerview отображается наполовину за кадром, я думаю, это должно быть исправлено, если исправлено свертывание?

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"
    xmlns:tools = "http://schemas.android.com/tools"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent"
    tools:context = ".Controllers.MainActivity">

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

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            app:layout_scrollFlags = "scroll|snap|exitUntilCollapsed"
            app:contentScrim = "@color/colorPrimary"
            app:title = "Hero Title">

            <ImageView
                android:layout_width = "match_parent"
                android:layout_height = "match_parent"
                android:background = "#000000" />

            <TextView
                android:layout_width = "wrap_content"
                android:layout_height = "wrap_content"
                android:text = "Hero Title"
                android:textStyle = "bold"
                android:textSize = "20dp"
                android:textColor = "#ffffff"/>

            <android.support.v7.widget.Toolbar
                android:layout_width = "match_parent"
                android:layout_height = "150dp"
                app:popupTheme = "@style/ThemeOverlay.AppCompat.Dark">

            </android.support.v7.widget.Toolbar>

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

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

    <android.support.v7.widget.RecyclerView
        android:id = "@+id/herosRecyclerView"
        android:layout_width = "395dp"
        android:layout_height = "715dp"
        app:layout_behavior = "@string/appbar_scrolling_view_behavior"
        app:layout_constraintBottom_toBottomOf = "parent"
        app:layout_constraintEnd_toEndOf = "parent"
        app:layout_constraintStart_toStartOf = "parent"
        app:layout_constraintTop_toTopOf = "parent"/>
</android.support.design.widget.CoordinatorLayout>

а вот изображение того, что я имею в виду под полузакадровым:

https://imgur.com/Fz8TmKK

0
0
1 218
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Пожалуйста, попробуйте это. Это будет работать.

<?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"
        xmlns:tools = "http://schemas.android.com/tools"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:background = "@color/colorWhite"
        tools:context = ".Controllers.MainActivity">

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

            <android.support.design.widget.CollapsingToolbarLayout
                android:layout_width = "match_parent"
                android:layout_height = "150dp"
                android:textAlignment = "center"
                app:contentScrim = "@color/colorPrimary"
                app:layout_scrollFlags = "scroll|exitUntilCollapsed"
                app:title = "Hero Title">

                <ImageView
                    android:layout_width = "match_parent"
                    android:layout_height = "150dp"
                    android:background = "#000000"
                    app:layout_collapseMode = "parallax"
                    app:layout_collapseParallaxMultiplier = "0.7" />

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

                </android.support.v7.widget.Toolbar>

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

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

        <FrameLayout
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            app:layout_behavior = "@string/appbar_scrolling_view_behavior">

            <android.support.v7.widget.RecyclerView
                android:id = "@+id/herosRecyclerView"
                android:layout_width = "match_parent"
                android:layout_height = "match_parent" />
        </FrameLayout>

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

вы удалили textview специально?

Alon Shlider 28.05.2019 13:36

действует так же и ничего не меняет. не могли бы вы объяснить, что я сделал неправильно или чего мне не хватает, чтобы я мог лучше понять вас

Alon Shlider 28.05.2019 13:41

Потому что вам не нужно добавлять еще одно текстовое представление, поскольку вы уже установили текст на сворачивающейся панели инструментов. Это будет выглядеть лучше. Посмотрите на эффект прокрутки.

Koushik Mondal 28.05.2019 13:42

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

Koushik Mondal 28.05.2019 13:44

только что попробовал, не получилось. моя цель состоит в том, чтобы при прокрутке recyclerview вниз панель рухнула вверх, а при достижении конца она снова открылась. это то, что вы имели в виду?

Alon Shlider 28.05.2019 13:52

ладно, ничего - работает. сделал некоторые ошибки здесь и там. Спасибо!

Alon Shlider 28.05.2019 13:53

не могли бы вы выделить разницу между моей версией и вашей?

Alon Shlider 28.05.2019 13:58

Я не знаю, почему я получил -1 по этому вопросу, если вы можете, пожалуйста, проголосовать за меня, потому что я не вижу причин для этого

Alon Shlider 29.05.2019 12:25

Привет. Кажется, это работает, когда я пытаюсь прокрутить панель инструментов. Могу ли я получить тот же эффект при попытке прокрутки recyclerview вместо этого?

Zubayr 15.07.2019 11:21

Пожалуйста, добавьте это в свой ImageView:

app:layout_collapseMode = "parallax"

Код будет выглядеть так:

<?xml version = "1.0" encoding = "utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    xmlns:tools = "http://schemas.android.com/tools"
    xmlns:app = "http://schemas.android.com/apk/res-auto"

    android:fitsSystemWindows = "true"

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

    <com.google.android.material.appbar.AppBarLayout
        android:id = "@+id/appbar"
        android:fitsSystemWindows = "true"

        android:layout_height = "192dp"
        android:layout_width = "match_parent">

        <com.google.android.material.appbar.CollapsingToolbarLayout
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            app:toolbarId = "@+id/toolbar"
            app:title = "@string/app_name"


            app:layout_scrollFlags = "snap|scroll|exitUntilCollapsed"
            app:layout_scrollInterpolator = "@android:anim/decelerate_interpolator"

            app:contentScrim = "?attr/colorPrimary">

            <ImageView
                android:id = "@+id/app_bar_image"
                android:layout_width = "match_parent"
                android:layout_height = "match_parent"

                android:src = "@drawable/ss"
                android:scaleType = "centerCrop" />

            <androidx.appcompat.widget.Toolbar
                android:id = "@+id/toolbar"
                android:layout_height = "?attr/actionBarSize"
                app:collapseIcon = "@drawable/ic_baseline_menu_24"
                app:navigationIcon = "@drawable/ic_baseline_menu_24"
                android:layout_width = "match_parent"
                app:layout_collapseMode = "pin"
                app:menu = "@menu/demo_menu">

            </androidx.appcompat.widget.Toolbar>
        </com.google.android.material.appbar.CollapsingToolbarLayout>
    </com.google.android.material.appbar.AppBarLayout>

    <androidx.core.widget.NestedScrollView
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"


        app:layout_behavior = "com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">

        <TextView
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:padding = "12dp"
            android:text = "@string/ipsum">

        </TextView>

    </androidx.core.widget.NestedScrollView>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

для полного посещения учебника:

https://bedevelopers.tech/collapsing-toolbar-android-example-using-android-studio/

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