Skip to main content

Tips

suspendCoroutine

suspend fun call() = suspendCoroutine<T> {
io {
val async: Deferred<T> = async(Dispatchers.IO) {
// T
}
async.await()
continuation.resume(T)
}
}

ignore DEPRECATION

@Suppress("DEPRECATION")

导航栏背景全透明前景色不为全白的方法 Transparent NavigationBar

在 Themes.xml 主题添加,并应用于需要的 Activity。

<item name="android:enforceNavigationBarContrast">false</item>

在给定 Activity 添加以下代码。

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

// 在 super.onCreate(savedInstanceState) 后调用,API 30 上有空指针崩溃 BUG,https://cloud.tencent.com/developer/ask/sof/568185
WindowCompat.setDecorFitsSystemWindows(window, false)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (AppCompatDelegate.getDefaultNightMode() != AppCompatDelegate.MODE_NIGHT_YES) {
window.insetsController?.setSystemBarsAppearance(
WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS,
WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS
)
} else {
window.insetsController?.setSystemBarsAppearance(0, WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS)
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@Suppress("DEPRECATION")
if (AppCompatDelegate.getDefaultNightMode() != AppCompatDelegate.MODE_NIGHT_YES) {
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR or window.decorView.systemUiVisibility
} else {
window.decorView.systemUiVisibility = window.decorView.systemUiVisibility
}
}
window.navigationBarColor = android.graphics.Color.TRANSPARENT


// ...
}

贡献来自:Github@1552980358

compositionLocalOf 学习

default 是当无 provides 时候的提供值

CompositionLocalProvider(
Local... provides [变更影响下方]
) {
// 影响
}

CoordinatorLayout + EditText

EditText 所在的可滑动区域设定了滑动 AppBarLayout.ScrollingViewBehavior,在调整窗口大小后可能会有严重的性能问题。页面会多次 Measure 。

部分系统上 WebView

Bold 需要字重达到 700