首页 > 解决方案 > 如何在kotlin中换行?

问题描述

例如我有这样的java方法

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    if (hasFocus) {
        // Standard Android full-screen functionality.
        // Use for hide status bar and navigation buttons
        getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }
}

所有条件都是可见且易于阅读的,但是有一个kotlin实现

override fun onWindowFocusChanged(hasFocus: Boolean) {
             super.onWindowFocusChanged(hasFocus)
             if (hasFocus) {
                 // Standard Android full-screen functionality.
                 // Use for hide status bar and navigation buttons
                 window.decorView.systemUiVisibility =
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                 window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
             }
         }

你只有一条长长的线,完全不容易阅读。如果你尝试像在 java 中那样包装这一行,你会得到一个错误......

那么,有没有办法让它更适合呢?

标签: javaandroidkotlin

解决方案


or但是,您可以在行尾之前编写调用:

window.decorView.systemUiVisibility =
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
    View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
    View.SYSTEM_UI_FLAG_FULLSCREEN or
    View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

另一种解决方法可能是使用非中缀调用:

window.decorView.systemUiVisibility =
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
    .or(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)
    .or(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
    .or(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
    .or(View.SYSTEM_UI_FLAG_FULLSCREEN)
    .or(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)

推荐阅读