Wear OS এর জন্য কম্পোজ সহ নেভিগেশন


অ্যান্ড্রয়েড জেটপ্যাকের নেভিগেশন উপাদান জেটপ্যাক রচনা অ্যাপ্লিকেশনগুলির জন্য সমর্থন প্রদান করে। নেভিগেশন উপাদানের পরিকাঠামো এবং বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করার সময় আপনি কম্পোজেবলগুলির মধ্যে নেভিগেট করতে পারেন।

এই পৃষ্ঠাটি Wear OS-এর জন্য কম্পোজে জেটপ্যাক নেভিগেশনের পার্থক্য বর্ণনা করে।

সেটআপ

আপনার অ্যাপ মডিউলের build.gradle ফাইলে নিম্নলিখিত নির্ভরতা ব্যবহার করুন:

কোটলিন

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

এটি androidx.navigation:navigation-compose আর্টিফ্যাক্টের পরিবর্তে ব্যবহার করা হয় কারণ এটি Wear OS-এর জন্য নির্দিষ্ট বিকল্প বাস্তবায়ন প্রদান করে।

একটি নেভিগেশন কন্ট্রোলার, হোস্ট এবং গ্রাফ তৈরি করুন

Wear OS-এর জন্য কম্পোজের মাধ্যমে নেভিগেট করার জন্য নন-ওয়্যার ওএস অ্যাপে একই তিনটি উপাদান প্রয়োজন: নেভিগেশন কন্ট্রোলার, হোস্ট এবং গ্রাফ।

WearNavigator এর একটি উদাহরণ তৈরি করতে rememberSwipeDismissableNavController() ব্যবহার করুন, Wear OS অ্যাপ্লিকেশনের জন্য উপযুক্ত NavController এর বাস্তবায়ন:

কোটলিন

val navController = rememberSwipeDismissableNavController()

NavController হল প্রাথমিক API যা কম্পোজ অ্যাপ্লিকেশনগুলিতে নেভিগেট করতে ব্যবহৃত হয়। এটি নেভিগেশন হোস্টে কম্পোজেবলের মধ্যে নেভিগেটিং নিয়ন্ত্রণ করে যা Wear OS-এ SwipeDismissableNavHost

কোটলিন

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

NavHost composable এর মত, এটি নেভিগেশন কন্ট্রোলার, শুরুর গন্তব্যের রুট এবং নেভিগেশন গ্রাফের নির্মাতার একটি রেফারেন্স নেয় যা এখানে একটি ট্রেলিং ল্যাম্বডা হিসাবে দেখানো হয়েছে।

ন্যাভিগেশন গ্রাফ বিল্ডারে প্রারম্ভিক গন্তব্য অবশ্যই প্রদান করতে হবে, অন্যান্য সমস্ত গন্তব্যের সাথে যেগুলি নেভিগেশন কন্ট্রোলারের সাথে নেভিগেবল হতে হবে।

আপনার Wear OS অ্যাপে, সময়, স্ক্রোল/পজিশন ইন্ডিকেটর এবং পেজ ইন্ডিকেটরের মতো টপ-লেভেল কম্পোনেন্ট সমর্থন করার জন্য SwipeDismissableNavHost AppScaffold এর কন্টেন্ট হিসেবে ঘোষণা করুন। SwipeDismissableNavHost এর উপরে একটি AppScaffold অবজেক্ট এবং স্ক্রীন লেভেলে 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")!!)
            }
        }
    }
}

// Implementation of one of the screens in the navigation
@Composable
fun MessageDetail(id: String) {
    // .. Screen level content goes here
    val scrollState = rememberTransformingLazyColumnState()

    val padding = rememberResponsiveColumnPadding(
        first = ColumnItemType.BodyText
    )

    ScreenScaffold(
        scrollState = scrollState,
        contentPadding = padding
    ) {
        // Screen content goes here

জেটপ্যাক নেভিগেশন সম্পর্কে আরও জানতে, কম্পোজ দিয়ে নেভিগেটিং দেখুন বা জেটপ্যাক কম্পোজ নেভিগেশন কোড ল্যাব নিন।

{% শব্দার্থে %} {% endverbatim %} {% শব্দার্থে %} {% endverbatim %}