android – 小吃栏没有显示

我将从BaseActivity继承所有其他活动.
public class BaseActivity extends AppCompatActivity {

    public static CoordinatorLayout coordinatorLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_base);
        coordinatorLayout = (CoordinatorLayout) findViewById(R.id
                .coordinatorLayout1);
    }
}

activity_base.xml

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/coordinatorLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.Activity.BaseActivity"> 
</android.support.design.widget.CoordinatorLayout>

尝试从非活动类访问时不显示Snackbar.

Snackbar snackbar = Snackbar.make(
        BaseActivity.coordinatorLayout,"Helooo....",Snackbar.LENGTH_LONG
);

解决方法

在Util类中创建一个公共方法,不要将cordinatorLayout设为public static.保留Activity的实例的weakReference,然后通过它可以显示SnackBar.
方法如下.
public void showSnackBar(Activity activity,String message){
    View rootView = activity.getwindow().getDecorView().findViewById(android.R.id.content);
    Snackbar.make(rootView,message,duration).show();
}

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...