【问题标题】:How to show snackbar throughout the Application?如何在整个应用程序中显示快餐栏?
【发布时间】:2019-01-12 11:55:29
【问题描述】:

我有 3 个以上的 Activity,但我们只选择其中的三个,BaseActivity、Splashscreen、MainActivity。 Splashscreen 和 Mainactivity 扩展了 BaseActivity。 现在,每当我从服务器获得故障响应时,我都会在 BaseActivity 中显示一个 Snackbar。响应代码在 BaseActivity 中,同时我正在从闪屏过渡到 MainActivity。

小吃店没有出现?可能是什么错误?有没有办法制作静态小吃店?我已经尝试过了,但没有从静态方法中获取 getWindow? 有人遇到过这个问题吗?

【问题讨论】:

  • 把 getWindow().getDecorView().findViewById(android.R.id.content) 这个作为视图在snackbar中,并在基础活动中创建一个显示snack的函数。
  • 不工作......

标签: android android-snackbar


【解决方案1】:

是的,您可以在您的 utils 中创建一个静态方法,并在 utils 类中创建小吃吧并在您的应用中的任何位置使用

     public static void showSnackBar(View view, String msg) {
        if (view != null) {
            Snackbar snackbar = Snackbar.make(view, msg, Snackbar.LENGTH_LONG);
            View snackbarView = snackbar.getView();
            TextView textView = snackbarView.findViewById(android.support.design.R.id.snackbar_text);
            textView.setMaxLines(5);
//snackBarView.setBackgroundColor(Color.argb(255, 8, 20, 37));
            snackbar.show();
        }
    }

用途:

Utils.showSnackBar(getView(), failureMessage);

【讨论】:

  • 什么是 getView() ?如果我从一项活动转到另一项活动,它是否可用?它是否不依赖于活动,因为如果是,那么只要活动重新创建或新活动打开,它就会重新创建。
  • 没有getview()这样的方法
  • 不,我在fragment中使用这个方法,并且fragment提供getView()返回根视图
  • 你传递任何视图供你使用
  • 我通过了rootview()并在baseactivity的oncreate中调用了上面的代码。我的其他两个活动扩展了基本活动,因此当我从启动屏幕转到主活动时,它将创建新的 BaseAcitivty,并且一旦我进入下一个活动,小吃栏就会消失。我想展示基于应用程序的快餐栏。
猜你喜欢
  • 2020-12-12
  • 2018-06-03
  • 2022-09-27
  • 2019-04-30
  • 2022-08-20
  • 1970-01-01
  • 2017-09-14
  • 2017-02-19
  • 2020-11-04
相关资源
最近更新 更多