java - xml 的协调器布局

标签 java android

我想使用 snackbar 在应用程序的任何部分显示消息。我的意思是当 wifi 被禁用时, 应该有一个 snackbar 说 wifi 已禁用。这是在应用程序的任何部分(任何 fragment 或任何 Activity )中确定的。 目前,我正在 subfragment 中确定这一点,其中所有 fragment 都扩展了 subfragment 并且我还在 MainActivity 中使用它。 这很好用。问题在于 snackbar 的协调器布局。如何在每个 xml 中提供此 协调器布局? 最佳解决方案是什么?

最佳答案

我认为常见的方法是遍历 Root View 并找到作为 CoordinatorLayout 实例的 subview ,代码段可能如下所示:

public View getCoordinateLayout(Activity activity) {
    ViewGroup vg = (ViewGroup) activity.findViewById(android.R.id.content);
    ViewGroup root = (ViewGroup) vg.getChildAt(0);
    int childCount = root.getChildCount();
    for(int i=0;i<childCount;i++){
        View view = root.getChildAt(i);
        if(view instanceof CoordinatorLayout){
            return view;
        }
    }
    return null;
}

关于java - xml 的协调器布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42369183/

相关文章:

java - 我是否过度使用了单例模式?

java - 在 android 中单击按钮时无法从 fragment 加载 Intent

java - 在android中构建自动刷新方法

android - 无法使用 android studio 3.1.3 设置 ApkVariantOutputImpl_Decorated 的只读属性 'outputFile' 的值

java - 将 JNI 与返回多个大小未预先确定的短 int 指针的 C 函数结合使用

java - JVM G1GC 的混合 gc 没有收集太多旧区域

java - 将字符串值转换为变量名 |字符串值包含变量名

Java Spring : Error message "no declaration can be found for element ' util:constant'

java - 如何在一个 Activity 中使用java类?

android - 避免双击操作栏中的项目