底部动作条(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的使用基本相同,相对比较简单!
网友评论