我正在努力将设计重点放在这样:
为此,我在onCreate
中添加了内容getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
现在布局得到了扩展,但它以某种方式将我的小吃店隐藏在导航栏后面,这不是理想的结果,因为它应该在上面。这是我的截图:
我可能接近错误的方式,如果你纠正我会非常有帮助。
答案 0 :(得分:0)
从here:为您的零食店添加保证金, 48dp 就足够了。
public static void displaySnackBarWithBottomMargin(Snackbar snackbar, int sideMargin, int marginBottom) {
final View snackBarView = snackbar.getView();
final CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) snackBarView.getLayoutParams();
params.setMargins(params.leftMargin + sideMargin,
params.topMargin,
params.rightMargin + sideMargin,
params.bottomMargin + marginBottom);
snackBarView.setLayoutParams(params);
snackbar.show();
}
答案 1 :(得分:0)
请勿使用“ rootView”实例创建Snackbar,而应使用如下所示的getView()
alertDialog.setMessage(mTextViewResult.setText(String.valueOf(sum));
答案 2 :(得分:0)
我使用这种技术解决了这个问题:
1- 在我的布局中添加一个视图
2-set Snackbar setAnchorView
<块引用>在您的 XML 中
<View
android:id="@+id/snackBarAnchor"
android:layout_width="0.1dp"
android:layout_height="0.1dp"
android:layout_alignParentBottom="true" />
<块引用>
在你的代码中
snackbar.setAnchorView(R.id.snackBarAnchor)
答案 3 :(得分:-1)
无需使用LayoutParams进行猜测(这会使您的Snackbar处于不同屏幕上的怪异位置)
相反,只需确保布局的根是CoordinatorLayout
。确保协调者也是分配给快餐栏的视图(请勿使用v.getRootView()
,因为这可能是另一个视图)
您可能需要给协调员提供一个ID,并将其作为视图传递:
new Snackbar.make(findViewById(R.id.coordinator), ...).show()