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

优化侧边栏显示效果

bjb 6 днів тому
батько
коміт
4bcc09ee2a

+ 1 - 1
.idea/deploymentTargetSelector.xml

@@ -4,7 +4,7 @@
     <selectionStates>
       <SelectionState runConfigName="app">
         <option name="selectionMode" value="DROPDOWN" />
-        <DropdownSelection timestamp="2025-12-12T00:59:16.631395500Z">
+        <DropdownSelection timestamp="2025-12-17T03:53:45.407760100Z">
           <Target type="DEFAULT_BOOT">
             <handle>
               <DeviceId pluginId="PhysicalDevice" identifier="serial=32923c41" />

+ 1 - 1
app/src/main/java/com/iscs/bozzys/Entry.kt

@@ -27,7 +27,7 @@ class Entry : Application() {
             .build()
         PushServiceFactory.init(config)
         // 小米通道注册
-        MiPushRegister.register(this, "2882303761520479855", "5522047986855")
+        // MiPushRegister.register(this, "2882303761520479855", "5522047986855")
     }
 
 }

+ 4 - 1
app/src/main/java/com/iscs/bozzys/ui/pages/PageSplash.kt

@@ -4,6 +4,7 @@ import android.app.NotificationChannel
 import android.app.NotificationManager
 import android.graphics.Color
 import android.os.Build
+import android.util.Log
 import androidx.compose.foundation.Image
 import androidx.compose.foundation.background
 import androidx.compose.foundation.layout.Box
@@ -88,10 +89,12 @@ class PageSplash : PageBase() {
             override fun onSuccess(msg: String?) {
                 // 消息推送初始化成功
                 // 这里可能要告知服务端当前推送的设备id,便于后续设备推送通知
+                Log.i("MPS","消息推送注册成功")
             }
 
             override fun onFailed(errCode: String?, errMsg: String?) {
                 // 消息推送初始化失败
+                Log.i("MPS","消息推送注册失败:$errMsg $errCode")
             }
 
         })
@@ -100,7 +103,7 @@ class PageSplash : PageBase() {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
             val nm = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
             // 通知渠道的id。这个id值需要给后端开发和运维人员,推送的时候对应 AndroidNotificationChannel 参数。
-            val channelId = "normal"
+            val channelId = "Normal"
             // 用户可以看到的通知渠道的描述。
             val description = getString(R.string.push_channel_normal)
             val importance = NotificationManager.IMPORTANCE_HIGH

+ 10 - 12
app/src/main/java/com/iscs/bozzys/ui/pages/home/HomeCompose.kt

@@ -30,9 +30,7 @@ import androidx.compose.material3.pulltorefresh.PullToRefreshBox
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.collectAsState
 import androidx.compose.runtime.getValue
-import androidx.compose.runtime.mutableStateOf
 import androidx.compose.runtime.remember
-import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.clip
@@ -53,20 +51,20 @@ import com.iscs.bozzys.ui.theme.Text
 @OptIn(ExperimentalMaterial3Api::class)
 @Composable
 fun HomeCompose(pv: PaddingValues, zIndex: Float, vmHome: VMHome) {
-    var isRefresh by remember { mutableStateOf(false) }
-    Box(
+    val state by vmHome.state.collectAsState()
+    Column(
         modifier = Modifier
             .fillMaxSize()
             .zIndex(zIndex)
             .background(Color.White)
     ) {
-        PullToRefreshBox(isRefresh, onRefresh = {
-            isRefresh = true
+        // 顶部工具栏
+        TopToolBar(pv, vmHome)
+        PullToRefreshBox(state.isHomeTabRefresh, onRefresh = {
+            vmHome.onRefreshHomeTab()
         }) {
             Column(Modifier.fillMaxSize()) {
-                // 顶部工具栏
-                TopToolBar(pv, vmHome)
-                Box() {
+                Box {
                     TODOList(pv, vmHome)
                     TODO(vmHome)
                 }
@@ -91,7 +89,7 @@ private fun TopToolBar(pv: PaddingValues, vmHome: VMHome) {
             modifier = Modifier
                 .fillMaxWidth()
                 .height(66.dp)
-                .padding(start = 20.dp, end = 10.dp),
+                .padding(start = 16.dp, end = 10.dp),
             verticalAlignment = Alignment.CenterVertically
         ) {
             Icon(
@@ -156,7 +154,7 @@ private fun TODO(vmHome: VMHome) {
     Column(
         Modifier
             .fillMaxWidth()
-            .background(Color(0xFFF8F9FA))
+            .background(Color.White)
             .padding(top = 3.dp)
     ) {
         Text(
@@ -238,7 +236,7 @@ private fun TODOList(pv: PaddingValues, vmHome: VMHome) {
     val messageList = listOf(1, 2, 3)
     Column(
         Modifier
-            .padding(horizontal = 20.dp)
+            .padding(horizontal = 16.dp)
             .padding(bottom = pv.calculateBottomPadding())
             .fillMaxSize()
             .verticalScroll(state = rememberScrollState())

+ 2 - 2
app/src/main/java/com/iscs/bozzys/ui/pages/home/JobsCompose.kt

@@ -77,7 +77,7 @@ private fun TopToolBar(pv: PaddingValues, vmHome: VMHome) {
             modifier = Modifier
                 .fillMaxWidth()
                 .height(66.dp)
-                .padding(start = 20.dp, end = 10.dp),
+                .padding(start = 16.dp, end = 10.dp),
             verticalAlignment = Alignment.CenterVertically
         ) {
             Text("我的作业", fontSize = 18.sp, color = Color.White, fontWeight = FontWeight.Medium)
@@ -111,7 +111,7 @@ private fun MessageList() {
             modifier = Modifier
                 .padding(top = 5.dp)
                 .fillMaxSize()
-                .padding(horizontal = 20.dp)
+                .padding(horizontal = 16.dp)
         ) {
             items(list) { item ->
                 when (item) {

+ 2 - 2
app/src/main/java/com/iscs/bozzys/ui/pages/home/MessageCompose.kt

@@ -74,7 +74,7 @@ private fun TopToolBar(pv: PaddingValues, vmHome: VMHome) {
             modifier = Modifier
                 .fillMaxWidth()
                 .height(66.dp)
-                .padding(start = 20.dp, end = 10.dp),
+                .padding(start = 16.dp, end = 10.dp),
             verticalAlignment = Alignment.CenterVertically
         ) {
             Text("消息中心", fontSize = 18.sp, color = Color.White, fontWeight = FontWeight.Medium)
@@ -118,7 +118,7 @@ private fun MessageList() {
             modifier = Modifier
                 .padding(top = 5.dp)
                 .fillMaxSize()
-                .padding(horizontal = 20.dp)
+                .padding(horizontal = 16.dp)
         ) {
             items(list) { item ->
                 when (item) {

+ 16 - 1
app/src/main/java/com/iscs/bozzys/ui/pages/vm/VMHome.kt

@@ -6,6 +6,7 @@ import com.iscs.bozzys.R
 import com.iscs.bozzys.ui.base.VMBase
 import com.iscs.bozzys.ui.theme.Text
 import com.iscs.bozzys.utils.Storage
+import kotlinx.coroutines.delay
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.asStateFlow
 import kotlinx.coroutines.launch
@@ -37,14 +38,28 @@ class VMHome : VMBase() {
         _state.value = _state.value.copy(navs = ArrayList(navs))
     }
 
+    fun onRefreshHomeTab() {
+        _state.value = _state.value.copy(isHomeTabRefresh = true)
+        viewModelScope.launch {
+            delay(3000)
+            _state.value = _state.value.copy(isHomeTabRefresh = false)
+        }
+    }
+
 }
 
 /**
  * @param navs      当前底部的导航列表
  * @param navIndex  当前选中的底部导航
  * @param username  用户名
+ * @param isHomeTabRefresh 是否HomeTab页面刷新数据
  */
-data class StateHome(val navs: List<NavBarItem> = arrayListOf(), var navIndex: Int = 0, var username: String = "")
+data class StateHome(
+    val navs: List<NavBarItem> = arrayListOf(),
+    var navIndex: Int = 0,
+    var username: String = "",
+    var isHomeTabRefresh: Boolean = false
+)
 
 /**
  * 底部导航栏对象