我想在活动开始时显示Android Snackbar (android.support.design.widget.Snackbar),就像我们显示Toast一样.

但问题是我们在创建Snackbar时必须指定父布局,如下所示:

Snackbar.make(parentlayout, "This is main activity", Snackbar.LENGTH_LONG)
            .setAction("CLOSE", new View.OnClickListener() {
                @Override
                public void onClick(View view) {

                }
            })
            .setActionTextColor(getResources().getColor(android.R.color.holo_red_light ))
            .show();

当我们在活动开始时显示Snackbar而没有任何单击事件时,如何给出父布局(如果是单击事件,我们可以很容易地通过父视图)?

推荐答案

只需指向Activity's XML中的任意View个.例如,您可以为根视图组提供一个id,并使用:

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);    
   setContentView(R.layout.main_activity);
   View parentLayout = findViewById(android.R.id.content);
   Snackbar.make(parentLayout, "This is main activity", Snackbar.LENGTH_LONG) 
        .setAction("CLOSE", new View.OnClickListener() {
            @Override 
            public void onClick(View view) {

            } 
        }) 
        .setActionTextColor(getResources().getColor(android.R.color.holo_red_light ))
        .show(); 
   //Other stuff in OnCreate();
}

Android相关问答推荐

使用不同的Google帐户登录

关于BLE扫描工作原理的说明

合成 colored颜色 的GSON反序列化

房间DB:UPSERT返回什么?

由于Xcode运行脚本阶段没有指定输出,在IOS Emulator中的KMM项目中生成失败

升级到 Jetpack Compose 物料 list 2023.08.00 需要我将 targetSdk 更改为 34

Android 导航 - 定义参数

如何在 kotlin 中接收带有和不带有可空对象的集合并保持引用相同

面向Jetpack Compose的可组合放置问题

需要在按钮 onclick 上从 string.xml 获取值. @Composable 调用只能在@Composable 函数的上下文中发生

ArrayList 上的 Android intent.getParcelableArrayListExtra 引发 Nullpointer 异常

NFC getNdefMessage 在 Android 13 上写入标签后返回 null

Kotlin File(path).walkTopDown() 找不到文件

每次在 Jetpack Compose 中调用导航

Jetpack Compose UI - 在 AlertDialog 中单击时按钮宽度会发生变化

如何解决 compose 中material 图标的由于接收器类型不匹配,以下候选者都不适用

我的 React Native 在 11 月 4 日之前运行良好,但现在在运行 yarn android 时抛出异常

为什么官方文档用大写字母表示val变量?

Android:在模块 jetified-play-services-measurement 和 jetified-play-services-measurement-impl 中发现重复类

现代Android中的后台处理