Реализовать панель инструментов, такую ​​как приложение Gmail, с интеллектуальной тенью и полупрозрачной строкой состояния - PullRequest
0 голосов
/ 10 июля 2019

Как реализовать панель инструментов, такую ​​как новое приложение Gmail, которая является полупрозрачной и имеет тот же цвет, что и строка состояния, а также получает тень только при прокрутке.

Я загрузил снимок экрана здесь: gmail

это код моего основного макета активности:

<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout  xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/ima_default_background"
android:fitsSystemWindows="true"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

<!--the frame I load my fragments in-->
<FrameLayout
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<!--toolbar frame-->
<FrameLayout
    android:id="@+id/toolbar_frame_layout"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize">

    <net.karthikraj.shapesimage.ShapesImage
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@color/tool_bar_color"
        app:shapeDrawable="@drawable/one_rounded_rectangle_white_24dp" />

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/tool_bar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/transparent"
        app:layout_scrollFlags="scroll|enterAlways"
        app:titleTextAppearance="@style/ActionBar.nameText" />
</FrameLayout>


<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/navigation"
    style="@style/navigation_bottom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"
    android:foreground="?attr/selectableItemBackground"
    app:itemIconTint="@color/bottom_nav_color_selector"
    app:itemTextAppearanceActive="@style/BottomNavigation.ActiveItemTextAppearance"
    app:itemTextColor="@color/bottom_nav_color_selector"
    app:labelVisibilityMode="selected"
    app:menu="@menu/navigation" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

1 Ответ

0 голосов
/ 11 июля 2019

Я не уверен, есть ли какая-либо нативная реализация, уже доступная для этого.Один из способов сделать это - добавить другой вид под панелью инструментов с серым фоном, высота которого составляет около 1 dp, а затем реализовать прокручиваемый слушатель https://stackoverflow.com/a/10198865/9416912.

.начинает прокручиваться, вы сделали это видимым с исчезновением в анимации.Затем, когда пользователь останавливается, вы делаете вид невидимым и затемняете его.

...