বিষয়বস্তুর পরামিতি

ভূমিকা

আরও পরামিতি সহ নিউজকার্ড আপডেট করা হচ্ছে

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

ফিগমাতে পরামিতি যোগ করুন

আমাদের কম্পোনেন্টে কন্টেন্ট প্যারামিটার যোগ করা যাক।

  1. ফিগমাতে স্যুইচ করুন। NewsCardTutorial-এ, হিরো-আইটেম ভেরিয়েন্টে থাম্বনেইল ইমেজ লেয়ারটি নির্বাচন করুন (⌘ + ম্যাকে ক্লিক করুন, অথবা Ctrl + ইমেজে Windows এবং Linux-এ ক্লিক করুন)।
  2. রিলে ফর ফিগমা প্লাগইনে, + ক্লিক করুন এবং ড্রপ ডাউন মেনুতে image-content নির্বাচন করুন, তারপর নামটি "থাম্বনেইল" এ পরিবর্তন করুন।

    "থাম্বনেইল" প্যারামিটার সহ ফিগমা প্লাগইন যোগ করা হয়েছে
  3. শিরোনাম পাঠ্য স্তর নির্বাচন করুন, + ক্লিক করুন এবং text-content নির্বাচন করুন। লেখকের জন্য একই ধাপগুলি পুনরাবৃত্তি করুন এবং নায়ক-আইটেম ভেরিয়েন্টে তারিখ পাঠ্য স্তরগুলি। তাদের যথাক্রমে "শিরোনাম", "লেখক", এবং "তারিখ" নাম দিন।

    "শিরোনাম", "লেখক" এবং "তারিখ" পরামিতি যুক্ত ফিগমা প্লাগইন
  4. প্লাগইনে থাম্বনেইল প্যারামিটারে ক্লিক করুন। লক্ষ্য করুন যে প্রতিটি কম্পোনেন্ট ভেরিয়েন্টে, থাম্বনেইল স্তরটি একটি চিত্র এবং এটি নির্বাচিত।

    যেহেতু তিনটি স্তরের একই নাম ("থাম্বনেইল") এবং একই ডেটা টাইপ (ছবি-বিষয়বস্তু) তাই কন্টেন্ট প্যারামিটারটি তিনটি ভেরিয়েন্টেই এর সাথে সংযুক্ত করা হয়েছে৷ এর মানে হল যে একটি প্যারামিটার একাধিক ভেরিয়েন্টে একই ডেটা দেয়। এটি শিরোনাম, লেখক এবং তারিখের পরামিতিগুলির জন্যও সত্য।

    Figma প্লাগইন তিনটি থাম্বনেইল স্তর সহ নির্বাচিত

নামযুক্ত সংস্করণ সংরক্ষণ করুন

এখন এই সংস্করণটিকে কোডে আমদানি করার জন্য প্রস্তুত হিসাবে চিহ্নিত করা যাক।

  1. ফিগমা রিলে প্লাগইন খুলুন, যদি ইতিমধ্যে খোলা না থাকে।

  2. বিকাশকারীর সাথে ভাগ করুন ক্লিক করুন।

  3. বিকাশকারীর সাথে শেয়ার করুন স্ক্রিনে, সংস্করণটির জন্য একটি নাম এবং বিবরণ লিখুন।

    উদাহরণ শিরোনাম : যোগ করা পরামিতি

    উদাহরণ বর্ণনা : কার্ডে সামগ্রীর পরামিতি যোগ করা হয়েছে

  4. Save এ ক্লিক করুন।

অ্যান্ড্রয়েড স্টুডিওতে কম্পোনেন্ট আপডেট করুন

নিউজকার্ড কম্পোনেন্ট আপডেট করা যাক:

  1. অ্যান্ড্রয়েড স্টুডিওতে, প্রজেক্ট টুল উইন্ডোটি অ্যান্ড্রয়েড ভিউতে রয়েছে তা নিশ্চিত করুন। তারপরে app/ui-packages/news_card/ এ ডান-ক্লিক করুন এবং UI প্যাকেজ আপডেট করুন-এ ক্লিক করুন।

    প্রসঙ্গ মেনুতে UI প্যাকেজ বিকল্প আপডেট করুন
  2. ক্লিক করুন প্রকল্প বোতাম তৈরি করুন আপনার প্রকল্প তৈরি করতে। এটি আপডেট করা UI প্যাকেজ গ্রহণ করবে এবং কম্পোজযোগ্য কোডের একটি আপডেট সংস্করণ তৈরি করবে।

    টুলবারে বিল্ড বোতাম
  3. আপনি যদি app/java (generated)/com/example/hellonews/newscard/NewsCard.kt দেখেন, আপনি দেখতে পাবেন যে আমরা যে বিষয়বস্তু প্যারামিটারগুলি যোগ করেছি ( thumbnail , headline , author , date ) আমাদের কম্পোজেবলের প্যারামিটার তালিকায় উপস্থিত হয়েছে৷

    // View to select for NewsCard
    enum class View {
        HeroItem,
        ArticleItem,
        AudioItem
    }
    
    /**
    * News card component intended to display news items for a list
    *
    * This composable was generated from the UI package 'news_card'.
    * Generated code; don't edit directly.
    */
    @Composable
    fun NewsCard(
        modifier: Modifier = Modifier,
        view: View = View.HeroItem,
        thumbnail: Painter = EmptyPainter(),
        headline: String = "",
        author: String = "",
        date: String = ""
    ) {
    ...
    

অ্যাপে ইন্টিগ্রেট করুন

আসুন আমাদের অ্যাপের দিকে ফিরে তাকাই, যার UI আমরা এখনও পরিবর্তন করিনি। এতে নিয়মিত খবরের তালিকা এবং অডিও গল্পের তালিকা রয়েছে। এই দুটি কম্পোজেবল আমাদের নিউজকার্ড উপাদান যোগ করতে হবে:

  • PostListArticleStories কম্পোজেবল নিয়মিত খবরের জন্য দায়ী।
  • পোস্টটপ প্যারামিটার শীর্ষস্থানীয় গল্পের প্রতিনিধিত্ব করে।
  • পোস্ট প্যারামিটার বাকি গল্প প্রতিনিধিত্ব করে.
  • পোস্টলিস্টঅডিওস্টোরিজ কম্পোজেবল অডিও নিউজ স্টোরি রেন্ডার করে।
    তিনটি বিভাগ সহ অ্যাপটি UI
    এখন হোম স্ক্রিনে আমাদের নিউজকার্ড কম্পোনেন্ট একত্রিত করা যাক।
  1. app/java/com/example/hellonews/ui/home/HomeScreen.kt এ, ফাইলের শীর্ষের কাছে অন্যান্য আমদানি লাইনের পাশে নিম্নলিখিত আমদানিগুলি যোগ করুন: com.example.hellonews.newscard.NewsCard আমদানি করুন

    import com.example.hellonews.newscard.View

  2. এখনও HomeScreen.kt- এ, PostListArticleStories- এ স্ক্রোল করুন।

    @Composable
    fun HomeScreen(...)
    
    @Composable
    private fun PostList(...)
    
    @Composable
    private fun PostListArticleStoriesSection(...)
    
    @Composable
    private fun SearchArticlesSection(...)
    
    @Composable
    private fun PostListArticleStories(
        postTop: Post,
        posts: List<Post>,
        createOnTapped: (String, String) -> () -> Unit
    ) {...}
    
    @Composable
    private fun AudioStoriesTitle(...)
    
    @Composable
    private fun PostListAudioStories(...)
    
    @Composable
    fun Dialog(...)
    ...
    
  3. পোস্টটপের জন্য, HeroItem ভিউ ব্যবহার করে আমাদের নতুন আমদানি করা নিউজকার্ডের সাথে পাঠ্য উপাদানটি প্রতিস্থাপন করুন।

    @Composable
    private fun PostListArticleStories(
        postTop: Post,
        posts: List<Post>,
        createOnTapped: (String, String) -> () -> Unit
    ) {
        ...
        Column(
            horizontalAlignment = Alignment.Start,
            modifier = ...
        ) {
            Spacer(modifier = Modifier.size(12.dp))
            NewsCard(
                thumbnail = painterResource(postTop.imageId),
                headline = postTop.title,
                author = postTop.metadata.author.name,
                date = postTop.metadata.date,
                view = View.HeroItem
            )
            Spacer(modifier = Modifier.size(12.dp))
            ...
        }
    }
    
  4. প্রতিটি পোস্টের জন্য, ArticleItem ভিউ ব্যবহার করে, আমাদের নতুন আমদানি করা নিউজকার্ডের সাথে পাঠ্য উপাদানটি প্রতিস্থাপন করুন।

    @Composable
    private fun PostListArticleStories(
        postTop: Post,
        posts: List<Post>,
        createOnTapped: (String, String) -> () -> Unit
    ) {
        ...
        Column(
            horizontalAlignment = Alignment.Start,
            modifier = ...
        ) {
            ...
            posts.forEach { post ->
                NewsCard(
                    thumbnail = painterResource(post.imageId),
                    headline = post.title,
                    author = post.metadata.author.name,
                    date = post.metadata.date,
                    view = View.ArticleItem
                )
                Spacer(modifier = Modifier.size(12.dp))
            }
        }
    }
    
  5. আমরা নীচের অডিও গল্পগুলির জন্য একই কাজ করতে পারি। এখনও HomeScreen.kt এ, 260 লাইনের কাছাকাছি, PostListAudioStories- এ স্ক্রোল করুন।

    @Composable
    fun HomeScreen(...)
    
    @Composable
    private fun PostList(...)
    
    @Composable
    private fun PostListArticleStoriesSection(...)
    
    @Composable
    private fun SearchArticlesSection(...)
    
    @Composable
    private fun PostListArticleStories(...)
    
    @Composable
    private fun AudioStoriesTitle(...)
    
    @Composable
    private fun PostListAudioStories(
        posts: List<Post>,
        createOnTapped: (String, String) -> () -> Unit
    ) {...}
    
    @Composable
    fun Dialog(...)
    ...
    
  6. প্রতিটি পোস্টের জন্য, অডিওআইটেম ভিউ ব্যবহার করে, আমাদের নতুন আমদানি করা নিউজকার্ডের সাথে পাঠ্য উপাদানটি প্রতিস্থাপন করুন।

    @Composable
        private fun PostListAudioStories(
        posts: List<Post>,
        createOnTapped: (String, String) -> () -> Unit
    ) {
        Column(
            horizontalAlignment = ...,
            modifier = ...
        ) {
            posts.forEach { post ->
                NewsCard(
                    thumbnail = painterResource(post.imageId),
                    headline = post.title,
                    author = post.metadata.author.name,
                    date = post.metadata.date,
                    view = View.AudioItem
                )
                Spacer(modifier = Modifier.size(12.dp))
            }
        }
    }
    
  7. ক্লিক করুন প্রকল্প বোতাম তৈরি করুন আপনার প্রজেক্ট আবার তৈরি করতে এবং প্রিভিউতে ফলাফল দেখতে (স্ক্রিন ভিউ স্প্লিট):

    NewsApp এর পূর্বরূপ

পরবর্তী ধাপ

পরবর্তীতে, আমরা আমাদের অ্যাপে কিছু মিথস্ক্রিয়া যোগ করব

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