如何在Kotlin中换行?

Aleksey Timoshchenko:

例如我有这样的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中那样包装此行,则会出现错误...

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

Animesh Sahu:

但是,您可以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

解决方法的另一种方法是使用非infix调用:

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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章