kotlin Android布局:在FragmentContainerView中滚动时隐藏工具栏

wlzqhblo  于 2023-06-24  发布在  Kotlin
关注(0)|答案(1)|浏览(652)

我有一个工具栏,我想隐藏,如果用户向下滚动。
我发现了一个解决方案,其中要滚动的视图是RecyclerView或NestedScrollView。
在我的例子中,我的工具栏旁边有一个FragmentContainerView
FragmentContainerView托管不同的片段,例如WebView。我尝试了不同的东西,比如将FragmentContainerView嵌套在NestedScrollView中(不再显示)。
这是我的简化布局文件:

<androidx.drawerlayout.widget.DrawerLayout 
  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:id="@+id/drawer_layout"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context="com.abc.myApp.features.main.MainActivity">

  <androidx.coordinatorlayout.widget.CoordinatorLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/windowBackground">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/toolbar_parent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        app:layout_scrollFlags="scroll|enterAlways">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar_top"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_scrollFlags="scroll|enterAlways"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </com.google.android.material.appbar.AppBarLayout>

    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/nav_host_fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:nestedScrollingEnabled="true"
        app:defaultNavHost="true"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        app:navGraph="@navigation/nav_graph" />

    </androidx.coordinatorlayout.widget.CoordinatorLayout
</androidx.drawerlayout.widget.DrawerLayout>

有没有人知道我可以试试?

bkhjykvo

bkhjykvo1#

我有一个使用第三方库的解决方案
如上所述,我将WebView膨胀到FragmentContainerView中。
正如Zain所说,我需要一个NestedScrollView(包裹在WebView周围)。
在我的最终解决方案中,我用Telefonica的NestedScrollWebView替换了WebView:
https://github.com/Telefonica/android-nested-scroll-webview

相关问题