我想更改状态栏的颜色以匹配工具栏。我已经从其他答案中尝试了尽可能多的代码,但仍然无法正常工作。此代码适用于 Android 10,但不适用于 Android 11。下面的代码为我提供了一个半透明的状态栏:
class SettingDialog : AppCompatDialogFragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
dialog?.window?.requestFeature(Window.FEATURE_NO_TITLE)
}
override fun onResume() {
super.onResume()
dialog?.window?.apply {
setLayout(MATCH_PARENT, MATCH_PARENT)
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS) //This flag is deprecated
statusBarColor = ContextCompat.getColor(context, R.color.primary_dark)
val insetController = ViewCompat.getWindowInsetsController(decorView)
insetController?.isAppearanceLightStatusBars = true
}
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val v = inflater.inflate(R.layout.dialog_setting, container, false)
...
return v
}
}