我想实现“联系人详细信息”屏幕,例如Android 5.0 aka Lollipop。
为了描述当我们单击任何联系人的图标/图像时的更多内容,一个 View 从屏幕底部向上滑动。默认情况下,该 View 占据屏幕的一半,并且屏幕的其余部分是透明的,并且几乎没有添加任何Alpha。
其次,使用手指向上滑动,View向上改变其位置,透明部分也变得更暗,并且在某个位置,联系人姓名(TextView)开始减小其字体大小。这一直持续到它成为ActionBar的一部分为止。
我对如何实现这一点有一些疑问
最佳答案
使用android.support.design.widget.BottomSheetDialog
例如:
BottomSheetDialog mBottomSheetDialog = new BottomSheetDialog(this);
View view = getLayoutInflater().inflate(R.layout.your_layout, null);
// do any view specific operations here like adding click listener etc..,
mBottomSheetDialog.setContentView(view);
mBottomSheetDialog.show();
并且当您的布局中有任何可滚动的小部件(嵌套的Scrollview或RecyclerView)时,它将非常流畅。
有趣的部分是您可以设置初始内容的高度
BottomSheetBehavior mBehavior = BottomSheetBehavior.from((View) view.getParent());
mBehavior.setPeekHeight(dialog height);