Переглянути джерело

feat: 首页tab,底部适配

XiaodongLin 10 місяців тому
батько
коміт
cb04407bb0

+ 20 - 0
app/src/main/java/com/adealink/weparty/commonui/util/NavigationBarUtil.kt

@@ -0,0 +1,20 @@
+package com.adealink.weparty.commonui.util
+
+import android.content.Context
+import android.util.DisplayMetrics
+import android.view.WindowManager
+
+/**
+ * Created by XiaoDongLin.
+ * Date: 2025/5/8
+ */
+fun isNavigationBarVisible(context: Context): Boolean {
+    val displayMetrics = DisplayMetrics()
+    val display = (context.getSystemService(Context.WINDOW_SERVICE) as WindowManager).defaultDisplay
+    display.getRealMetrics(displayMetrics)
+    val realHeight = displayMetrics.heightPixels
+    display.getMetrics(displayMetrics)
+    val availableHeight = displayMetrics.heightPixels
+
+    return realHeight > availableHeight
+}

+ 12 - 0
app/src/main/java/com/adealink/weparty/ui/home/HomeFragment.kt

@@ -18,6 +18,7 @@ import com.adealink.weparty.commonui.ext.dp
 import com.adealink.weparty.commonui.ext.gone
 import com.adealink.weparty.commonui.ext.onSuccess
 import com.adealink.weparty.commonui.ext.show
+import com.adealink.weparty.commonui.util.isNavigationBarVisible
 import com.adealink.weparty.databinding.FragmentHomeBinding
 import com.adealink.weparty.databinding.LayoutMainTabNormalBinding
 import com.adealink.weparty.databinding.PopupHomeMessageReplyBinding
@@ -71,6 +72,17 @@ class HomeFragment : BaseHomeFragment(R.layout.fragment_home), ITabManager by Ta
     override val tlTab: TabLayout
         get() = binding.tlTab
 
+    override fun initViews() {
+        super.initViews()
+        if (context?.let { isNavigationBarVisible(it) } == false) {
+            binding.tlTab.apply {
+                if (layoutParams is ConstraintLayout.LayoutParams) {
+                    (layoutParams as ConstraintLayout.LayoutParams).bottomMargin = 12.dp()
+                }
+            }
+        }
+    }
+
     override fun initTabs() {
         binding.ivTabBg.observeSkin(viewLifecycleOwner, homeTabBgSkin)