java - Kotlin - 将 Kotlin 方法转换为 LayerDrawable 的 java 时出现问题

标签 java android kotlin layerdrawable

下面是从 Kotlin 代码函数转换而来的 java 函数。

@RequiresApi(api = Build.VERSION_CODES.M)
public void setWhiteNavigationBar(@NonNull Dialog dialog) {
    Window window = dialog.getWindow();
    if (window != null) {
        DisplayMetrics metrics = new DisplayMetrics();
        window.getWindowManager().getDefaultDisplay().getMetrics(metrics);

        GradientDrawable dimDrawable = new GradientDrawable();
        GradientDrawable navigationBarDrawable = new GradientDrawable();
        navigationBarDrawable.setShape(GradientDrawable.RECTANGLE);
        navigationBarDrawable.setColor(Color.WHITE);

        val layers = arrayOf<Drawable>(dimDrawable, navigationBarDrawable)

        LayerDrawable windowBackground = new LayerDrawable(layers);
        windowBackground.setLayerInsetTop(1, metrics.heightPixels);

        window.setBackgroundDrawable(windowBackground);
    }
}

我在该函数内的以下行遇到问题。 我很困惑如何在 Java 中写在 kotlin 行下面:

val layers = arrayOf<Drawable>(dimDrawable, navigationBarDrawable)

那么,有人请指导我们如何在 java 中编写这一行吗?

谢谢。

最佳答案

事实证明,kotlin 中的 arrayOf() 是一种创建特定类型数组的方法。在你的情况下Drawable。在 Java 中,您可以通过以下方式创建:

Drawable[] drawables = new Drawable[] {dimDrawable, navigationBarDrawable}

您可以省略new Drawable[]并编写:

Drawable[] drawables = {dimDrawable, navigationBarDrawable}

关于java - Kotlin - 将 Kotlin 方法转换为 LayerDrawable 的 java 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59906597/

相关文章:

java - 如何使 NDEF 文本记录人类无法阅读?

android - 使用 Firebase 服务器时间戳在 Android 上创建同步倒数计时器

kotlin - 如何根据时间键合并对象列表

android - 在android中将房间数据库导出到csv文件

java - 如何在java中设置concurrentHashMap的并发级别

java - Android 动画启动时崩溃

java - 当多个客户端尝试下载文件时,从 URL 下载的文件停止

android - 将数据作为 Activity 或对话框呈现给用户

android - 仅当缓存时发生错误:通过改型实现缓存

java - 无法从控制台获取完整的字符串输入