Android 中kotlin的功能點

一、設置狀態欄爲透明

1、屏蔽.fitsSystemWindows(true)
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="lianxin.web.psybot.nexring.MainActivity">

    <include layout="@layout/content_main" />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

<!--    android:fitsSystemWindows="true"-->
<!--    .fitsSystemWindows(true)    //解決狀態欄和佈局重疊問題,任選其一,默認爲false,當爲true時一定要指定statusBarColor(),不然狀態欄爲透明色,還有一些重載方法-->

2、設置狀態欄的字體顏色爲黑色

// 設置狀態欄
if (Build.VERSION.SDK_INT >= 21) {
    val decorView = window.decorView
    decorView.systemUiVisibility =
        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
    var originVisibility: Int = decorView.getSystemUiVisibility()
    if ( originVisibility and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR == 0) {
        originVisibility = originVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
    }
    decorView.setSystemUiVisibility(originVisibility)
    window.statusBarColor = Color.TRANSPARENT
}

 

二、向下取整,向上取整,四捨五入

val number = 3.75
val result = floor(number) // 調用floor()函數對number進行向下取整
println("結果爲:$result") // 輸出結果爲3.0
val number = 3.14
val roundedNumber = ceil(number) // 將小數部分四捨五入到最接近的大於或等於該值的整數
println("向上取整後的結果爲:$roundedNumber")
val number = 3.145926
val roundedNumber = number.round() // 結果爲3
println(roundedNumber)

 

三、獲取時間戳

// Calendar 是this 
 var dateTime : Long = this.getTimeInMillis();

四、webView加載

        // 設置webView==============================================================================
        messageHandler = MessageHandler()
        binding.webView.webViewClient = WebViewClient()
        binding.webView.settings.javaScriptEnabled=true;
        binding.webView.settings.setSupportZoom(false) // 支持縮放 默認爲true 是下面那個的前提
        binding.webView.settings.builtInZoomControls = false // 設置內置的縮放控件 若爲false 則該WebView不可縮放
        binding.webView.settings.displayZoomControls = false // 隱藏原生的縮放控件
        binding.webView.settings.cacheMode = WebSettings.LOAD_DEFAULT // 緩存模式
        binding.webView.settings.domStorageEnabled = true // 啓用或禁用DOM緩存
        binding.webView.settings.setSupportMultipleWindows(false) // 設置WebView是否支持多窗口
        // 設置自適應屏幕, 兩者合用
        binding.webView.settings.useWideViewPort = true  // 將圖片調整到適合webview的大小
        binding.webView.settings.loadWithOverviewMode = true  // 縮放至屏幕的大小
        binding.webView.settings.allowFileAccess = true // 設置可以訪問文件
        binding.webView.settings.setGeolocationEnabled(true) // 是否使用地理位置

        binding.webView.fitsSystemWindows = true
        binding.webView.setLayerType(View.LAYER_TYPE_HARDWARE,null)

        binding.webView.loadUrl("https://xxx")
        //Kotlin與H5通信方式1: H5調用Kotlin方法
        //設置Kotlin與H5通信橋樑類
        binding.webView.addJavascriptInterface(this,"NativeBridge")
        // 返回上一層
        binding.webView.setOnKeyListener { view, keyCode, keyEvent ->
            if (keyEvent.action == KeyEvent.ACTION_DOWN) {
                if (keyCode == KeyEvent.KEYCODE_BACK && binding.webView.canGoBack()) {
                    binding.webView.goBack()
                    return@setOnKeyListener true
                }
            }
            return@setOnKeyListener false
        }

        // 設置webView==============================================================================

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章