在横向模式下,我正在使用
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
显示和隐藏导航栏。
当我在显示导航时创建 Snackbar
Snackbar bar = Snackbar.make(snackbarContainer, "exiting", Snackbar.LENGTH_INDEFINITE);
bar.setAction("Testing", new View.OnClickListener() {
@Override
public void onClick(View v) {
//no-op
}
});
bar.show();
Snackbar 的操作文本被导航栏覆盖。 有没有办法根据导航栏是否显示自动调整 snackbar 的宽度?
最佳答案
可能您正在搜索这个:
private void displaySnackBarWithBottomMargin(Snackbar snackbar, int sideMargin, int marginBottom) {
final View snackBarView = snackbar.getView();
final FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) snackBarView.getLayoutParams();
params.setMargins(params.leftMargin + sideMargin, params.topMargin, params.rightMargin + sideMargin, params.bottomMargin + marginBottom);
snackBarView.setLayoutParams(params);
snackbar.show();
}
实际上是在: https://stackoverflow.com/a/34844669/371749
如果您从导航栏高度 (48dp) 添加边距底部,它会完美地显示在导航栏上方。
关于android - 导航栏后面的 Snackbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36588881/