【发布时间】:2019-02-24 07:57:08
【问题描述】:
我在使用 Android 中的 coordinatorLayout 在片段中滚动和检测它时遇到了很多问题。我有一个包含 3 个片段的“MainActivity”。在其中一个片段中,我有一个 Appbar 会在片段滚动时折叠。我已经设法做到了,但是如果我设置滚动行为以允许这样做,我的 bottomNavigationView(在 mainactivity.xml 中找到)不会对滚动做出反应。代码是这样的:
Fragment1.xml
<android.support.design.widget.CoordinatorLayout
...
...>
<android.support.design.widget.AppBarLayout
...
...>
<android.support.design.widget.CollapsingToolbarLayout
app:layout_scrollFlags="scroll|exitUntilCollapsed"
...>
<android.support.v7.widget.Toolbar
.../>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
MainActivity.xml
<android.support.design.widget.CoordinatorLayout
.../>
<FrameLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
.../>
<android.support.design.widget.BottomNavigationView
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior"
.../>
</android.support.design.widget.CoordinatorLayout>
现在,这已经足够好了,因为当我在片段中滚动时,我的 AppBar 会折叠到标题中(这是我想要的),但是我的 bottomNavigationView 对滚动没有反应。
我发现如果我添加该行
app:layout_behavior="@string/appbar_scrolling_view_behavior"
对于 AppBarLayout xml 声明,我让bottomView 在滚动事件上折叠(当我向上滚动时它再次显示)。所以基本上要么我有能力在片段内折叠 appbar,要么我有能力在我检测到片段内的滚动事件时隐藏 BottomNavigationView。
任何形式的帮助都将不胜感激。
【问题讨论】:
-
在没有应用栏布局的情况下,事情是否按预期工作?
-
是的,它完全可以在没有应用栏布局的情况下工作。基本问题是应用栏布局中使用了滚动标志。它正在消耗底部导航行为所需的滚动事件。
-
提供的答案是否适合您,如果不是,是什么问题?
标签: android scroll bottomnavigationview android-appbarlayout