以编程方式显示和隐藏底部 Sheet
Show and Hide Bottom Sheet Programmatically
我已经使用 this solution and this 库
在 onCreate() 的 activity 中实现了底部 Sheet 功能
sheet = new BottomSheet.Builder(this, R.style.BottomSheet_Dialog)
.title("New")
.grid() // <-- important part
.sheet(R.menu.menu_bottom_sheet)
.listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO
}
}).build();
现在,我想在单击按钮时显示底部 sheet,并以同样的方式在单击同一按钮时隐藏底部 sheet,如果已经可见的话
在您的 onClick()
按钮内使用:sheet.show()
.
然后当你想关闭它时,使用sheet.dismiss()
;
下面是一个可能的解决方案:
BottomSheet sheet = new BottomSheet.Builder(...).build();
Button button = (Button)findViewById(R.id.mybutton);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//you can use isShowing() because BottomSheet inherit from Dialog class
if (sheet.isShowing()){
sheet.dismiss();
} else {
sheet.show();
}
}
});
使用下面的代码
new BottomSheet.Builder(getActivity()).title("Your Title here").sheet(R.menu.bottom_sheet).listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case R.id.cancel:
dialog.cancel();
break;
case R.id.view:
//Todo view code here
dialog.cancel();
break;
}
}
}).show();
要从片段内部关闭 BottomSheetDialogFragment,您可以调用:
dismiss();
要显示或隐藏 activity 中的 BottomSheetDialogFragment,您只需调用:
bottomSheetDialogFragment.dismiss();//to hide it
bottomSheetDialogFragment.show(getSupportFragmentManager(),tag);// to show it
要显示底部 Sheet 使用此代码:
bottomSheetInfoBehavior.setHideable(false);
bottomSheetInfoBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
为了隐藏底部 sheet 使用此代码:
bottomSheetInfoBehavior.setHideable(true);
bottomSheetInfoBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
如果你想在片段中隐藏,那么使用
this.dismiss();
或
YOUR_FRAGMENT.this.dismiss()
我已经使用 this solution and this 库
在 onCreate() 的 activity 中实现了底部 Sheet 功能 sheet = new BottomSheet.Builder(this, R.style.BottomSheet_Dialog)
.title("New")
.grid() // <-- important part
.sheet(R.menu.menu_bottom_sheet)
.listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO
}
}).build();
现在,我想在单击按钮时显示底部 sheet,并以同样的方式在单击同一按钮时隐藏底部 sheet,如果已经可见的话
在您的 onClick()
按钮内使用:sheet.show()
.
然后当你想关闭它时,使用sheet.dismiss()
;
下面是一个可能的解决方案:
BottomSheet sheet = new BottomSheet.Builder(...).build();
Button button = (Button)findViewById(R.id.mybutton);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//you can use isShowing() because BottomSheet inherit from Dialog class
if (sheet.isShowing()){
sheet.dismiss();
} else {
sheet.show();
}
}
});
使用下面的代码
new BottomSheet.Builder(getActivity()).title("Your Title here").sheet(R.menu.bottom_sheet).listener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case R.id.cancel:
dialog.cancel();
break;
case R.id.view:
//Todo view code here
dialog.cancel();
break;
}
}
}).show();
要从片段内部关闭 BottomSheetDialogFragment,您可以调用:
dismiss();
要显示或隐藏 activity 中的 BottomSheetDialogFragment,您只需调用:
bottomSheetDialogFragment.dismiss();//to hide it
bottomSheetDialogFragment.show(getSupportFragmentManager(),tag);// to show it
要显示底部 Sheet 使用此代码:
bottomSheetInfoBehavior.setHideable(false);
bottomSheetInfoBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
为了隐藏底部 sheet 使用此代码:
bottomSheetInfoBehavior.setHideable(true);
bottomSheetInfoBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
如果你想在片段中隐藏,那么使用
this.dismiss();
或
YOUR_FRAGMENT.this.dismiss()