У меня есть сворачивающаяся панель инструментов, у которой есть 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>
а вот изображение того, что я имею в виду под полузакадровым:
Пожалуйста, попробуйте это. Это будет работать.
<?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>
действует так же и ничего не меняет. не могли бы вы объяснить, что я сделал неправильно или чего мне не хватает, чтобы я мог лучше понять вас
Потому что вам не нужно добавлять еще одно текстовое представление, поскольку вы уже установили текст на сворачивающейся панели инструментов. Это будет выглядеть лучше. Посмотрите на эффект прокрутки.
Попробуйте прокрутить, коснувшись части панели инструментов на экране. Вы можете увидеть эффект.
только что попробовал, не получилось. моя цель состоит в том, чтобы при прокрутке recyclerview вниз панель рухнула вверх, а при достижении конца она снова открылась. это то, что вы имели в виду?
ладно, ничего - работает. сделал некоторые ошибки здесь и там. Спасибо!
не могли бы вы выделить разницу между моей версией и вашей?
Я не знаю, почему я получил -1 по этому вопросу, если вы можете, пожалуйста, проголосовать за меня, потому что я не вижу причин для этого
Привет. Кажется, это работает, когда я пытаюсь прокрутить панель инструментов. Могу ли я получить тот же эффект при попытке прокрутки recyclerview вместо этого?
Пожалуйста, добавьте это в свой 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/
вы удалили textview специально?