我在使用Android中的CoordinatorLayout时,在Fragment中滚动和检测有很多问题。我有一个名为“MainActivity”的主要活动,其中包含3个片段。其中一个片段中有一个Appbar,当片段滚动时会折叠。我已经成功做到了这一点,但如果我设置滚动行为以允许它,我的bottomNavigationView(在mainactivity.xml中找到)将不会对滚动作出反应。代码大致如下:
Fragment1.xml
现在,这种方式已经运行得足够好了,当我在片段内滚动时,我的AppBar会折叠成标题(这正是我想要的),但是我的bottomNavigationView并没有对滚动做出反应。
我发现如果加入以下代码:
通过对AppBarLayout的xml声明,我可以在滚动事件中使bottomView折叠(向上滚动时再次显示)。因此基本上要么我可以在片段内折叠appbar,要么就是当我在片段内检测到滚动事件时我具有隐藏BottomNavigationView的能力。
任何形式的帮助都将不胜感激。
<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的能力。
任何形式的帮助都将不胜感激。