BottomSheetDialog

作者: Android师哥 | 来源:发表于2018-05-30 09:42 被阅读4次
NightRain.png

底部动作条(BottomSheetDialog)是一个从屏幕底部边缘向上滑出的一个面板,使用这种方式向用户呈现一组功能。底部动作条简单、清晰。特别适合有三个或者三个以上的操作需要提供给用户选择、并且不需要对操作有额外解释的情景。如果只有两个或者更少的操作,或者需要详加描述的,可以考虑使用菜单(Menu)或者对话框替代。

效果

BottomSheetDialog效果图.gif

普通弹出

    public void common(View view) {
        View viewContent = LayoutInflater.from(this).inflate(R.layout.item_bttom_dialog, null);
        TextView tv_item_cancle = viewContent.findViewById(R.id.tv_item_cancle);
        //实例化BottomSheetDialog
        final BottomSheetDialog mBottomSheetDialog = new BottomSheetDialog(this, R.style.dialog);
        //点击遮罩不消失
        mBottomSheetDialog.setCanceledOnTouchOutside(false);
        //设置弹出的界面
        mBottomSheetDialog.setContentView(viewContent);
        //弹出
        mBottomSheetDialog.show();
        //取消
        tv_item_cancle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mBottomSheetDialog.dismiss();
                Toast.makeText(BottomSheetActivity.this, "取消", Toast.LENGTH_SHORT).show();
            }
        });
    }

列表弹出

    public void list(View view) {
        View viewContent = LayoutInflater.from(this).inflate(R.layout.item_bottom_list, null);
        RecyclerView rv_item_bottomlist = viewContent.findViewById(R.id.rv_item_bottomlist);
        //实例化适配器
        BottomSheetAdapter mBottomSheetAdapter = new BottomSheetAdapter(this, mData);
        //设置LayoutManager
        rv_item_bottomlist.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
        //设置适配器
        rv_item_bottomlist.setAdapter(mBottomSheetAdapter);
        //实例化BottomSheetDialog
        BottomSheetDialog mBottomSheetDialog = new BottomSheetDialog(this);
        //设置弹出的界面
        mBottomSheetDialog.setContentView(viewContent);
        //弹出
        mBottomSheetDialog.show();
    }

Style样式

    <style name="dialog" parent="@style/Theme.AppCompat.Dialog">
        <item name="android:windowFrame">@null</item><!--边框-->
        <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
        <item name="android:windowIsTranslucent">false</item><!--半透明-->
        <item name="android:windowNoTitle">true</item><!--无标题-->
        <item name="android:windowBackground">@color/transparent</item><!--背景透明-->
        <item name="android:backgroundDimEnabled">true</item><!--模糊-->
        <item name="android:windowAnimationStyle">@style/Animation.Design.BottomSheetDialog</item><!--弹出动画-->
    </style>

BottomSheetDialog的使用和普通Dialog的使用基本相同,相对比较简单!

相关文章

网友评论

    本文标题:BottomSheetDialog

    本文链接:https://www.haomeiwen.com/subject/ynftsftx.html