پیمایش با Compose for Wear OS

مؤلفه Navigation در Android Jetpack از برنامه های Jetpack Compose پشتیبانی می کند. می‌توانید در حالی که از زیرساخت‌ها و ویژگی‌های مؤلفه ناوبری بهره می‌برید، بین اجزای سازنده حرکت کنید.

این صفحه تفاوت‌های Jetpack Navigation در Compose for Wear OS را توضیح می‌دهد.

راه اندازی

از وابستگی زیر در فایل build.gradle ماژول برنامه خود استفاده کنید:

کاتلین

dependencies {
    def wear_compose_version = "1.4.0"
    implementation "androidx.wear.compose:compose-navigation:$wear_compose_version"
}

این به جای مصنوع androidx.navigation:navigation-compose استفاده می‌شود، زیرا پیاده‌سازی‌های جایگزین مخصوص Wear OS را ارائه می‌دهد.

یک کنترلر ناوبری، میزبان و نمودار ایجاد کنید

پیمایش با Compose for Wear OS به همان سه جزء مورد نیاز در برنامه‌های غیر Wear OS نیاز دارد: کنترل‌کننده پیمایش، میزبان و نمودار.

برای ایجاد یک نمونه از WearNavigator ، یک پیاده‌سازی از NavController مناسب برای برنامه‌های Wear OS، از rememberSwipeDismissableNavController() استفاده کنید:

کاتلین

val navController = rememberSwipeDismissableNavController()

NavController API اولیه ای است که برای پیمایش در برنامه های Compose استفاده می شود. پیمایش بین اجزای سازنده را در میزبان ناوبری کنترل می کند که در Wear OS SwipeDismissableNavHost است.

کاتلین

val navController = rememberSwipeDismissableNavController()
SwipeDismissableNavHost(
    navController = navController,
    startDestination = "message_list"
) {
    // TODO: build navigation graph
}

مانند NavHost composable ، به کنترل کننده ناوبری، مسیر برای مقصد شروع و سازنده گراف ناوبری که در اینجا به عنوان یک لامبدای انتهایی نشان داده شده است، اشاره می کند.

مقصد شروع باید در سازنده نمودار ناوبری، همراه با سایر مقاصدی که باید با کنترل کننده ناوبری قابل پیمایش باشد، ارائه شود.

در برنامه Wear OS خود، SwipeDismissableNavHost به عنوان محتوایی از Scaffold برای پشتیبانی از اجزای سطح بالا مانند زمان، نشانگر اسکرول/موقعیت و نشانگر صفحه اعلام کنید. از یک شیء Horologist AppScaffold در بالای SwipeDismissableNavHost و Horologist ScreenScaffold در سطح صفحه استفاده کنید تا به طور پیش‌فرض یک شی TimeText به صفحه اضافه کنید و مطمئن شوید که هنگام حرکت بین صفحه‌ها به درستی متحرک می‌شود. علاوه بر این، ScreenScaffold یک PositionIndicator برای محتوای قابل پیمایش اضافه می کند.

AppScaffold {
    val navController = rememberSwipeDismissableNavController()
    SwipeDismissableNavHost(
        navController = navController,
        startDestination = "message_list"
    ) {
        composable("message_list") {
            MessageList(onMessageClick = { id ->
                navController.navigate("message_detail/$id")
            })
        }
        composable("message_detail/{id}") {
            MessageDetail(id = it.arguments?.getString("id")!!)
        }
    }
}
// ...
// .. Screen level content goes here
val scrollState = rememberScrollState()

ScreenScaffold(scrollState = scrollState) {
    // Screen content goes here

برای کسب اطلاعات بیشتر درباره Jetpack Navigation، به پیمایش با نوشتن مراجعه کنید یا به آزمایشگاه کد پیمایش Jetpack Compose بروید.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}