小吃店的持续时间和高度



我想展示一个小吃店。
在我点击手势检测器后,这种零食有两个按钮。
问题是小吃店出现几秒钟,然后消失。

所以我有两个问题:

  1. 如何阻止小吃栏消失,直到用户采取行动并单击按钮?
  2. 此外,小吃店的高度相当于整个屏幕。
    如何使其在屏幕底部具有特定高度?

您可以使用长duration

HomeScreen.scaffoldKey.currentState.showSnackBar(
SnackBar(duration: const Duration(minutes: 5), content: Text(message)));

另请参阅 https://material.io/design/components/snackbars.html#behavior

出现和消失

小吃栏的显示没有警告,并且不需要用户交互。 它们在至少四个后自动从屏幕上消失 秒,最长 10 秒。

我写了一些关于我如何解决这个问题 https://dev.to/eyewritecode/persisting-flutter-snackbar-until-user-interacts-with-it-2583

你基本上必须设置一个很长的持续时间

duration: Duration(days: 1)

并在要隐藏它时调用以下内容。

Scaffold.of(context).hideCurrentSnackBar();

您可以通过设置不同的最大行数(通常默认为 2(来更改小吃栏的高度:

您可以像这样执行此操作(例如 10 行(:

View snackbarView = snackbar.getView();
TextView snackTextView = (TextView) snackbarView.findViewById(
com.google.android.material.R.id.snackbar_text);
snackTextView.setMaxLines(10);
snackbar.show();
final Snackbar snack = Snackbar.make(findViewById(android.R.id.content),  helpMsg, Snackbar.LENGTH_INDEFINITE);
snack.setAction("OK", new View.OnClickListener() {
@Override
public void onClick(View v) {
// Respond to the click dismiss is automatic with this
}
});
View view = snack.getView();
FrameLayout.LayoutParams params =(FrameLayout.LayoutParams)view.getLayoutParams();
params.gravity = Gravity.TOP;
view.setLayoutParams(params);
snack.show();

最新更新