滚动时在应用程序栏或工具栏下方显示并隐藏按钮
问题描述:
我试图在内容(fragment_container
)在CoordinatorLayout
中滚动时在应用程序栏下方显示一个按钮。它有点作品,但我希望按钮显示在appbar/toolbar
的正下方,而不是在显示时扩大appbar的高度。它目前扩展了appbar,因为它嵌套在appbar中。我尝试过与RelativeLayout
组合,没有任何运气。滚动时在应用程序栏或工具栏下方显示并隐藏按钮
当内容滚动时,如何从appbar/toolbar
“脱离”它并使其出现在下方?
在下面的图片中,绿色表示应用栏,紫色为toolbar
,红色为我想在外部(正下方)appbar/toolbar
布局外显示的按钮。白色背景显示fragment_container
内的recyclerview。
用于获得上述图像中的结果的布局:
<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中向下滚动内容时,我希望按钮出现。向上滚动(向上滑动)应该移除按钮。
答
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();
不是我想要的。你的例子在CoordinatorLayout的顶部显示一个SnackBar。我想在appbar下面显示一个视图,并在CoordinatorLayout移动时显示并消失。它需要位于CoordinatorLayout内的“外部”和AppBarLayout下方。 – thilemann