持久性底部工作表中的对话框叠加

时间:2016-05-04 09:09:05

标签: android bottom-sheet

是否可以在模态底页对话框中找到的持久底页上添加叠加?我实现了一个底片,里面有一个framelayout,并做了一些片段交易。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/bottom_sheet"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="2sp"
            android:layout_marginRight="2sp"
            android:layout_marginTop="?attr/actionBarSize"
            android:clickable="true"
            android:orientation="vertical"
            app:elevation="4sp"
            app:layout_behavior="@string/bottom_sheet_behavior">

            <FrameLayout
                android:id="@+id/function_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="2sp"
                android:layout_marginRight="2sp"
                android:layout_marginTop="?attr/actionBarSize"
                android:background="#fafafa"
                android:elevation="4sp">

            </FrameLayout>
        </LinearLayout>

当它被展开并按下后退按钮时,片段将从堆栈中移除。但是当我使用模态对话框时,对话框被取消了。

@Override
public void onBackPressed() {
    Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.function_frame);
    if (fragment.getFragmentManager().getBackStackEntryCount() == 0) {
        if (mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
            mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
            return;
        }
    }
    super.onBackPressed();
}

所以,我发现使用持久性对话框可以更好地完成工作,但我希望屏幕区域上的模态覆盖不被工作表覆盖。

0 个答案:

没有答案