下面是从 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/