From 7a777e28a69760cf091f0b50c38fca110901c2fa Mon Sep 17 00:00:00 2001 From: dongliang Date: Mon, 27 Apr 2026 19:47:31 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=8A=B6=E6=80=81=E6=A0=8F=E5=9B=BA?= =?UTF-8?q?=E5=AE=9A=E5=9C=A8=E9=A1=B6=E9=83=A8=EF=BC=8C=E4=B8=8D=E9=9A=8F?= =?UTF-8?q?ViewPager2=E6=BB=91=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 状态栏从两个子页面移到fragment_home.xml顶层 - ViewPager2在状态栏下方滑动 - HomeFragment只维护一个固定statusBar引用 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/xiaoqu/watch/ui/home/HomeFragment.kt | 18 +++++++-------- app/src/main/res/layout/fragment_home.xml | 23 +++++++++++++++---- app/src/main/res/layout/page_config.xml | 9 -------- app/src/main/res/layout/page_main.xml | 10 -------- 4 files changed, 27 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt index da08613..0d22538 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt @@ -39,8 +39,10 @@ class HomeFragment : BaseFragment() { @Inject lateinit var eventBus: EventBus @Inject lateinit var taskApi: TaskApi + // ===== 固定状态栏(不随 ViewPager 滑动) ===== + private lateinit var statusBar: StatusBarView + // ===== 主页 View 引用 ===== - private lateinit var mainStatusBar: StatusBarView private lateinit var tvClock: TextView private lateinit var tvDate: TextView private lateinit var tvPoolNum: TextView @@ -48,7 +50,6 @@ class HomeFragment : BaseFragment() { private lateinit var tvCompleteNum: TextView // ===== 设置页 View 引用 ===== - private lateinit var configStatusBar: StatusBarView private lateinit var tvAvatarLetter: TextView private lateinit var tvUserName: TextView private lateinit var tvUserPhone: TextView @@ -64,6 +65,9 @@ class HomeFragment : BaseFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + // 绑定固定状态栏(不随 ViewPager 滑动) + statusBar = binding.statusBar + // 创建两个页面 View val inflater = LayoutInflater.from(requireContext()) val configPage = inflater.inflate(R.layout.page_config, null) @@ -96,7 +100,6 @@ class HomeFragment : BaseFragment() { /** 绑定主页 View 引用 */ private fun bindMainViews(page: View) { - mainStatusBar = page.findViewById(R.id.statusBar) tvClock = page.findViewById(R.id.tvClock) tvDate = page.findViewById(R.id.tvDate) tvPoolNum = page.findViewById(R.id.tvPoolNum) @@ -161,7 +164,6 @@ class HomeFragment : BaseFragment() { /** 绑定设置页 View 引用并直接填充数据 */ private fun bindConfigViews(page: View) { configPageView = page - configStatusBar = page.findViewById(R.id.statusBar) tvAvatarLetter = page.findViewById(R.id.tvAvatarLetter) tvUserName = page.findViewById(R.id.tvUserName) tvUserPhone = page.findViewById(R.id.tvUserPhone) @@ -225,15 +227,13 @@ class HomeFragment : BaseFragment() { viewLifecycleOwner.lifecycleScope.launch { eventBus.events.collect { event -> when (event) { - // 电量变化:更新两个状态栏 + // 电量变化:更新固定状态栏 is AppEvent.BatteryChanged -> { - mainStatusBar.updateBattery(event.level, event.isCharging) - configStatusBar.updateBattery(event.level, event.isCharging) + statusBar.updateBattery(event.level, event.isCharging) } // 蓝牙状态变化 is AppEvent.BluetoothStateChanged -> { - mainStatusBar.updateBluetooth(event.isOn) - configStatusBar.updateBluetooth(event.isOn) + statusBar.updateBluetooth(event.isOn) } // MQTT 消息 is AppEvent.MqttMessageReceived -> { diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 180ce7a..5041af2 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -1,13 +1,26 @@ - - + + android:background="@color/background" + android:orientation="vertical" + android:paddingStart="21dp" + android:paddingTop="27dp" + android:paddingEnd="21dp"> + + + + + android:layout_height="0dp" + android:layout_weight="1" /> - + diff --git a/app/src/main/res/layout/page_config.xml b/app/src/main/res/layout/page_config.xml index 29a391b..a4580d7 100644 --- a/app/src/main/res/layout/page_config.xml +++ b/app/src/main/res/layout/page_config.xml @@ -6,17 +6,8 @@ android:layout_height="match_parent" android:background="@color/background" android:orientation="vertical" - android:paddingStart="21dp" - android:paddingTop="27dp" - android:paddingEnd="21dp" android:paddingBottom="27dp"> - - - - - -