BindingAdapter 设置布局全屏
BindingAdapter to set a layout fullscreen
我正在尝试在 java 中复制以下用 Kotlin 编写的代码。它实际上按照一些逻辑设置全屏布局,特别是绑定发生在元素 CoordinatorLayout
到 app:layoutFullscreen="@{true}"
.
上
@BindingAdapter("layoutFullscreen")
fun View.bindLayoutFullscreen(previousFullscreen: Boolean, fullscreen: Boolean) {
if (previousFullscreen != fullscreen && fullscreen) {
systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
}
}
我试图将所有内容都变成 java 但我遇到了各种错误
@BindingAdapter("layoutFullscreen")
public static void bindLayoutFullscreen(Boolean previousFullscreen, Boolean fullscreen) {
if (previousFullscreen != fullscreen && fullscreen) {
View.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
}
}
如何获得与 java 中的 kotlin 代码相同的功能?
提前致谢,
贾科莫
注意:
- Kotlin 扩展函数作为第一个参数提供给 java,因此这里的
view
是第一个参数。
-
or
是 java 中的 |
。
- Java 提供 setters/getters 而不是直接访问属性,因此
view
上使用的 systemUiVisibility
的 setter 版本
- 分号
;
在 java 行尾是必须的。
这是有效的 java 版本:
@BindingAdapter("layoutFullscreen")
public static void bindLayoutFullscreen(View view, boolean previousFullscreen, boolean fullscreen) {
if (previousFullscreen != fullscreen && fullscreen) {
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
}
我正在尝试在 java 中复制以下用 Kotlin 编写的代码。它实际上按照一些逻辑设置全屏布局,特别是绑定发生在元素 CoordinatorLayout
到 app:layoutFullscreen="@{true}"
.
@BindingAdapter("layoutFullscreen")
fun View.bindLayoutFullscreen(previousFullscreen: Boolean, fullscreen: Boolean) {
if (previousFullscreen != fullscreen && fullscreen) {
systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
}
}
我试图将所有内容都变成 java 但我遇到了各种错误
@BindingAdapter("layoutFullscreen")
public static void bindLayoutFullscreen(Boolean previousFullscreen, Boolean fullscreen) {
if (previousFullscreen != fullscreen && fullscreen) {
View.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
}
}
如何获得与 java 中的 kotlin 代码相同的功能?
提前致谢, 贾科莫
注意:
- Kotlin 扩展函数作为第一个参数提供给 java,因此这里的
view
是第一个参数。 -
or
是 java 中的|
。 - Java 提供 setters/getters 而不是直接访问属性,因此
view
上使用的 - 分号
;
在 java 行尾是必须的。
systemUiVisibility
的 setter 版本
这是有效的 java 版本:
@BindingAdapter("layoutFullscreen")
public static void bindLayoutFullscreen(View view, boolean previousFullscreen, boolean fullscreen) {
if (previousFullscreen != fullscreen && fullscreen) {
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
}