You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将实现布局全屏的Kotlin BindingAdapter转为等效Java代码

Java复现Kotlin BindingAdapter全屏逻辑的修正方案

原有代码错误点

  • 缺少扩展函数对应的View参数:Kotlin中fun View.bindLayoutFullscreen(...)是View的扩展函数,转成Java静态方法需要把View作为第一个入参
  • 位运算符错误:Kotlin的位或关键字or对应Java的位或运算符|
  • 调用方式错误:systemUiVisibility是View实例的成员属性,不是静态属性,需要通过传入的View实例调用,同时Java中调用该属性用setSystemUiVisibility()方法,语句末尾需要补分号

修正后可运行代码

import android.view.View;
import androidx.databinding.BindingAdapter;

@BindingAdapter("layoutFullscreen")
public static void bindLayoutFullscreen(View targetView, Boolean previousFullscreen, Boolean fullscreen) {
    if (previousFullscreen != fullscreen && fullscreen) {
        targetView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
    }
}

功能对齐说明

修正后的代码逻辑和原Kotlin代码完全一致:仅当layoutFullscreen属性值从false变为true时,才会为目标View设置允许布局延伸到状态栏和导航栏后方的标识,实现全屏适配效果。

内容的提问来源于stack exchange,提问作者G. Ciardini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:42:02