我创建了一个BottomSheetDialogFragment,我想调整它的最大展开高度。我该怎么做?我可以检索bottomsheetbehavior,但我能找到的只是一个用于查看高度的setter,而对于扩展高度则没有
公共类DialogMediaDetails扩展了DialogFragment
{
@凌驾
公共void设置对话框(对话框,int样式)
{
super.setupDialog(对话框,样式);
View=View.inflate(getContext(),R.layout.dialog\u media\u details,null);
setContentView(视图);
…
查看底部工作表=dialog.findviewbyd(R.id.design\u bottom\u sheet);
BottomSheetBehavior=BottomSheetBehavior.from(bottomSheet);
行为。身高(…);
//如何设置最大展开高度???或最小顶部偏移?
}
}
编辑
为什么我需要这个?因为我在一个全屏活动中显示了一个BottomSheet对话框,如果BottomSheet在顶部留下一个空间,那看起来很糟糕
由于膨胀视图添加到具有布局\u高度=包裹内容的FrameLayout中,因此正在包裹高度。请参见第页的框架布局(R.id.design_底部_表)https://github.com/dandar3/android-support-design/blob/master/res/layout/design_bottom_sheet_dialog.xml.
下面的类使底页全屏显示,背景透明,并完全扩展到顶部
公共类FullScreenBottomSheetDialogFragment扩展了BottomSheetDialogFragment{
@超级呼叫
@凌驾
已创建视图上的公共void(视图,@Nullable Bundle savedInstanceState){
super.onViewCreated(视图,savedInstanceState);
ButterKnife.bind(这个,视图);
}
@凌驾
public void onStart(){
super.onStart();
Dialog=getDialog();
如果(对话框!=null){
查看底部工作表=dialog.findviewbyd(R.id.design\u bottom\u sheet);
bottomSheet.getLayoutParams().height=ViewGroup.LayoutParams.MATCH_父项;
}
View=getView();
查看.发布(()->{
View parent=(View)View.getParent();
CoordinatorLayout.LayoutParams参数=(CoordinatorLayout.LayoutParams)(父级).getLayoutParams();
CoordinatorLayout.Behavior=params.getBehavior();
BottomSheetBehavior BottomSheetBehavior=(BottomSheetBehavior)行为;
bottomSheetBehavior.setPeek高度(view.getMeasuredHeight());
((视图)bottomSheet.getParent()).setBackgroundColor(Color.TRANSPARENT)
});
}
}
---2018年8月30日编辑---
一年后我意识到背景的颜色是错误的。这会在用户拖动对话框时拖动背景和内容。
我修复了它,以便底部图纸的父视图是彩色的