Thay đổi màu thanh trạng thái trong Jetpack Compose

May 08 2023
Mỗi vấn đề được giải quyết là một bài học kinh nghiệm. #AndroidTips #SolvedProblemToday Thay đổi màu thanh trạng thái là một nhiệm vụ phổ biến khi thiết kế ứng dụng Android.

Mỗi vấn đề được giải quyết là một bài học kinh nghiệm. #Mẹo Android #Giải quyết vấn đềhôm nay

Jetpack Soạn

Thay đổi màu thanh trạng thái là một công việc phổ biến khi thiết kế ứng dụng Android. Với Jetpack Compose, đây là một quy trình đơn giản có thể được thực hiện chỉ trong một vài dòng mã.

Thay đổi màu thanh trạng thái trong Jetpack Compose

Để thay đổi màu thanh trạng thái trong Jetpack Compose, chúng ta có thể sử dụng tùy chọn SystemUiControllerdo androidx.compose.ui.platformgói cung cấp.

Trước tiên, chúng tôi cần bộ điều khiển hệ thống đi kèm, Thêm phần phụ thuộc vào tệp build.gradle của ứng dụng của bạn:

dependencies {
    implementation "com.google.accompanist:accompanist-systemuicontroller:x.y.z"
}

Chúng ta cần tạo một hàm có thể kết hợp để đặt màu cho thanh trạng thái (tạo lớp SetStatusBarColor.kt ). Đây là một ví dụ:

@Composable
fun SetStatusBarColor(color: Color) {
    val systemUiController = rememberSystemUiController()
    SideEffect {
        systemUiController.setSystemBarsColor(color)
    }
}

Tiếp theo, chúng ta có thể gọi hàm này trong @Composablehàm chính trên MainActivity , như sau:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            YourAppNameTheme {
                StatusBarColor(color = MaterialTheme.colors.primary)
                // Other content here, example :
                Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
                    YourAppClass()
                }
            }
        }
    }
}

Và thế là xong! Chỉ với một vài dòng mã, chúng ta có thể dễ dàng thay đổi màu thanh trạng thái trong ứng dụng Android dựa trên Jetpack Compose của mình.

Việc sử dụng SystemUiControllerkhông chỉ giới hạn ở việc thay đổi màu của thanh trạng thái mà còn có thể được sử dụng cho các cấu hình giao diện người dùng hệ thống khác, chẳng hạn như thanh điều hướng, chế độ nhập vai, v.v.

Tôi có ứng dụng sampel sử dụng jetpack soạn trong kho lưu trữ của mình github.com/im-o .

Đã xong và phủi bụi, cảm ơn bạn!