滚动时在应用程序栏或工具栏下方显示并隐藏按钮

问题描述:

我试图在内容(fragment_container)在CoordinatorLayout中滚动时在应用程序栏下方显示一个按钮。它有点作品,但我希望按钮显示在appbar/toolbar的正下方,而不是在显示时扩大appbar的高度。它目前扩展了appbar,因为它嵌套在appbar中。我尝试过与RelativeLayout组合,没有任何运气。滚动时在应用程序栏或工具栏下方显示并隐藏按钮

当内容滚动时,如何从appbar/toolbar“脱离”它并使其出现在下方?

在下面的图片中,绿色表示应用栏,紫色为toolbar,红色为我想在外部(正下方)appbar/toolbar布局外显示的按钮。白色背景显示fragment_container内的recyclerview。

Current layout

用于获得上述图像中的结果的布局:

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/coordinator"> 

    <android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar"> 

     <Toolbar 
      android:id="@+id/toolbar" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <Button 
      android:id="@+id/scrollToTop" 
      app:layout_scrollFlags="scroll|enterAlways" 
      android:layout_marginTop="10dp" /> 

    </android.support.design.widget.AppBarLayout> 

    <FrameLayout 
    android:id="@+id/fragment_container" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

</android.support.design.widget.CoordinatorLayout> 

编辑:

见下面的结果,我后的图像。当在CoordinatorLayout中向下滚动内容时,我希望按钮出现。向上滚动(向上滑动)应该移除按钮。

Desired layout

CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout); 
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Text", Snackbar.LENGTH_LONG); View view = snackbar.getView(); 
CoordinatorLayout.LayoutParams params =(CoordinatorLayout.LayoutParams)view.getLayoutParams();  
params.gravity = Gravity.TOP; 
view.setLayoutParams(params); snackbar.show(); 
+1

不是我想要的。你的例子在CoordinatorLayout的顶部显示一个SnackBar。我想在appbar下面显示一个视图,并在CoordinatorLayout移动时显示并消失。它需要位于CoordinatorLayout内的“外部”和AppBarLayout下方。 – thilemann