android 底部弹框 BottomSheetDialog 的使用
先簡單的說下普通彈框使用 步驟
?首先項目需要添加design 庫?
?簡單的使用和dialog 一樣 如下
BottomSheetDialog sheelt = new BottomSheetDialog(BottomSheeltActvity.this);View contentView = LayoutInflater.from(BottomSheeltActvity.this).inflate(R.layout.bottom__pop_item, null);sheelt.setContentView(contentView);sheelt.show();
這樣就彈框了,簡單吧
下面給其添加一個監(jiān)聽事件
public class BottomSheeltActvity extends AppCompatActivity {BottomSheetDialog sheelt;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.bottom_sheet_activity_layout);findViewById(R.id.txt).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {sheelt = new BottomSheetDialog(BottomSheeltActvity.this);View contentView = LayoutInflater.from(BottomSheeltActvity.this).inflate(R.layout.bottom__pop_item, null);sheelt.setContentView(contentView);sheelt.show();//設(shè)置背景為透明sheelt.getWindow().findViewById(R.id.design_bottom_sheet).setBackgroundResource(android.R.color.transparent);//設(shè)置id 的監(jiān)聽TextView photo = contentView.findViewById(R.id.photo);photo.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(BottomSheeltActvity.this, "點擊了", Toast.LENGTH_SHORT).show();sheelt.dismiss();//消失}});}});}
}
下面說下其他的注意點
1 BottomSheetDialog 默認(rèn)點擊彈框之外的區(qū)域 彈框消失,如果想讓其不消失可以設(shè)置如下
sheelt.setCanceledOnTouchOutside(false);
2?BottomSheetDialog 點擊消失的方法
sheelt.dismiss();
3 設(shè)置背景透明
sheelt.getWindow().findViewById(R.id.design_bottom_sheet).setBackgroundResource(android.R.color.transparent);
可能有人會問這個id那來的,這個是系統(tǒng)自帶的,直接賦值過去使用即可
4 彈框布局上面2個角變?yōu)閳A角
這個可以用shape?
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><cornersandroid:topLeftRadius="10dp"android:topRightRadius="10dp" /><solid android:color="#ffffff" />
</shape>
但是需要設(shè)置彈框背景為透明 否則 顯示的效果 被默認(rèn)的白色背景擋著可也看不到效果
5 彈框 分模塊 有間距的那那種?
這個同樣布局設(shè)置距離即可,但是需要設(shè)置背景為透明,然后在吧自己寫的彈框的區(qū)域設(shè)置為自己想要的顏色即可。。
6 修改BottomSheetDialog 的默認(rèn)高度
這里說下自己在項目中什么地方用到了這個修改默認(rèn)高度
假如 彈框里面有一個控件點擊 彈框增提布局增加1/3 的高度,再次點擊 這個高度消失 ,如果彈框整體布局沒有高出默認(rèn)高度
沒有問題 ,如果彈框布局高于默認(rèn)高度 這樣彈框之后它它不會增加而是高度一致,變成了滑動了
如果使用popwindow 做這樣的彈框 你會發(fā)現(xiàn)效果非常的不好看,有興趣的可以自己試試 ,這里只給出修改默認(rèn)高度的
方法
BottomSheetBehavior sheetBehavior = BottomSheetBehavior.from((View) contentView.getParent()); sheetBehavior.setPeekHeight(1500);//修改默認(rèn)的高度
到這里基本知識就講完了,希望能幫助到您。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的android 底部弹框 BottomSheetDialog 的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小海蒂作者是谁啊?
- 下一篇: Android 10 新增的功能