模态底部 Sheet:如何从操作栏设置 8dp?
Modal Bottom Sheet: how to set 8dp from action bar?
我想使用模态底部sheet。 Material 设计指南说完全展开的底部 sheet 应该在操作栏下方 8dp。我怎样才能做到这一点?我想在操作栏中保留一个 X
标记,以便在完全展开时关闭底部 sheet。
当我尝试使用 linearLayout 底部时sheet,当状态展开时它会占据整个屏幕。
我的屁股sheet布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="@dimen/design_bottom_sheet_modal_elevation"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="ADD"/>
</LinearLayout>
我没有找到简单的方法,但这就是我所做的。我测量了状态栏和操作栏的高度,并从屏幕高度中减去它。适合我。不确定这是否是最好的方法。 `
private int getBottomSheetMaximumHeight() {
// get toolbar height
Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
int toolbarHeight = toolbar.getHeight();
//get status bar height
Rect rectangle = new Rect();
Window window = getActivity().getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int windowHeight = rectangle.bottom;
// material design recommended bottomsheet padding from actionbar
final int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,8, getContext().getResources().getDisplayMetrics());
// maximum height of the bottomsheet
return windowHeight - toolbarHeight - rectangle.top - padding;
}`
我想使用模态底部sheet。 Material 设计指南说完全展开的底部 sheet 应该在操作栏下方 8dp。我怎样才能做到这一点?我想在操作栏中保留一个 X
标记,以便在完全展开时关闭底部 sheet。
当我尝试使用 linearLayout 底部时sheet,当状态展开时它会占据整个屏幕。
我的屁股sheet布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="@dimen/design_bottom_sheet_modal_elevation"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"/>
<Button
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:text="ADD"/>
</LinearLayout>
我没有找到简单的方法,但这就是我所做的。我测量了状态栏和操作栏的高度,并从屏幕高度中减去它。适合我。不确定这是否是最好的方法。 `
private int getBottomSheetMaximumHeight() {
// get toolbar height
Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar);
int toolbarHeight = toolbar.getHeight();
//get status bar height
Rect rectangle = new Rect();
Window window = getActivity().getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int windowHeight = rectangle.bottom;
// material design recommended bottomsheet padding from actionbar
final int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,8, getContext().getResources().getDisplayMetrics());
// maximum height of the bottomsheet
return windowHeight - toolbarHeight - rectangle.top - padding;
}`