簡體   English   中英

如何獲取 android 應用程序的狀態欄插圖?

[英]How to get statusbar insets for android app?

我正在嘗試使我的 android 應用程序“邊緣到邊緣”(使狀態欄和導航欄半透明)。 我已經在網上閱讀了很多關於這個主題的文章,但是由於現在已經棄用了很多方法和類,所以我嘗試使用新的方法來編寫它。 該應用程序在我的運行 android 11 的物理三星手機上運行正常,但是在運行 android 11 的我的 android 工作室模擬器上啟動該應用程序時,它給了我獲取插入的運行時錯誤和錯誤:查看代碼 10。

代碼(mainFragment.kt 中的 onCreateView()):

binding.appbar.setOnApplyWindowInsetsListener { view, windowInsets ->
  val insets = windowInsets.getInsets(WindowInsets.Type.statusBars())
  view.updatePadding(top = insets.top)
  windowInsets
}

錯誤:

java.lang.NoSuchMethodError: No static method statusBars()I in class Landroid/view/WindowInsets$Type; or its super classes (declaration of 'android.view.WindowInsets$Type' appears in /system/framework/framework.jar!classes3.dex)
.MainFragment$onCreateView$1.onApplyWindowInsets(MainFragment.kt:44)

更新:運行 android 11 的模擬器也沒有問題,現在我認為我必須為較低的 API 做不同的工作? 但究竟如何?!

嘗試使用您在 androidX 庫中使用的相同方法。

ViewCompat.setOnApplyWindowInsetsListener(view, listener)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM