发现掘金和知乎的分享界面效果挺好的,比自己的用的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,没想到是自带的控件,效果真的很赞,当然也可以写成网格布局,如果内容较少的话,是不会上拉到顶部的。