滚动

时间:2017-07-29 08:20:39

标签: android android-layout android-toolbar android-coordinatorlayout android-appbarlayout

每当在fragment_container中滚动内容(CoordinatorLayout)时,我都会尝试在appbar下方显示一个按钮。它有点工作,但我希望按钮显示在appbar/toolbar下方,而不是在显示时展开appbar的高度。它目前扩展了appbar,因为它嵌套在appbar中。我尝试过与RelativeLayout组合而没有任何运气。

我如何"分离"它来自appbar/toolbar并在内容滚动时仍显示在下方?

在下图中,绿色表示appbar,紫色表示toolbar,红色表示我想要显示在appbar/toolbar布局外面(正下方)的按钮。白色背景显示fragment_container内的回收者视图。

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

1 个答案:

答案 0 :(得分:1)

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();