發現掘金和知乎的分享界面效果挺好的,比自己的用的AlertDialog和 PopupWindow的效果好太多就像學習一下,如圖是掘金的文章分享界面
其實這種效果是一個特殊的Dialog—-BottomSheetDialog
下面是我做的案例效果圖
- 點擊方法
public void showDialog(View view) {
View contentView = LayoutInflater.from(this)
.inflate(R.layout.list, null);
RecyclerView recyclerView= (RecyclerView) contentView.findViewById(R.id.recycler);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
Adapter adapter = new Adapter();
recyclerView.setAdapter(adapter);
final BottomSheetDialog dialog = new BottomSheetDialog(this);
dialog.setContentView(contentView);
dialog.show();
adapter.setOnItemClickListener((position, text) -> {
Toast.makeText(mContext, text, Toast.LENGTH_SHORT).show();
dialog.dismiss();
});
}
聲明BottomSheetDialog後把View配置上,view的xml中就一個textView和一個RecyclerView,在知乎的這個界面是有廣告位的,看起來也是毫無違和感。
用法很簡單,只不過一開始看到這個界面還以爲是自定義的Dialog,沒想到是自帶的控件,效果真的很贊,當然也可以寫成網格佈局,如果內容較少的話,是不會上拉到頂部的。