থিম ওভারলে.এপকম্প্যাট বনাম থিম.এপকম্প্যাট কখন ব্যবহার করা উচিত?


113

নীচের থিম.এপকম্প্যাট ক্লাস রয়েছে:

Theme.AppCompat
Theme.AppCompat.Light
Theme.AppCompat.Light.DarkActionBar
Theme.AppCompat.NoActionBar
Theme.AppCompat.Light.NoActionBar
Theme.AppCompat.DialogWhenLarge
Theme.AppCompat.Light.DialogWhenLarge
Theme.AppCompat.Dialog
Theme.AppCompat.Light.Dialog
Theme.AppCompat.CompactMenu

এবং নিম্নলিখিত থিমওভারলে.অ্যাপকম্প্যাট ক্লাস:

ThemeOverlay.AppCompat
ThemeOverlay.AppCompat.Light
ThemeOverlay.AppCompat.Dark
ThemeOverlay.AppCompat.ActionBar
ThemeOverlay.AppCompat.Dark.ActionBar

কেন কেউ থিম ওভারলে.অ্যাপকম্প্যাট.লাইট বনাম থিম.অ্যাপকম্প্যাট.লাইট ব্যবহার করবে? আমি দেখতে পাচ্ছি যে থিম ওভারলে এর জন্য অনেক কম অ্যাট্রিবিউট সংজ্ঞায়িত করা হয়েছে - থিমঅভারলে এর উদ্দেশ্যে ব্যবহারের ক্ষেত্রে কী কী তা আমি আগ্রহী।

উত্তর:


71

অ্যাপকম্প্যাটটির নির্মাতা দ্বারা এই থিম বনাম স্টাইল ব্লগ পোস্ট প্রতি :

[থিম ওভারলেস] হ'ল বিশেষ থিম যা সাধারণ থিমগুলিকে ওভারলে করে ater

থিম ওভারলে + অ্যাকশনবার

আপনার আগ্রহী কৌতুকগুলি অ্যাকশনবার থিমওভারলে ডেরাইভেটিভগুলিও দেখতে পাবেন:

  • ThemeOverlay.Material.Light.ActionBar
  • ThemeOverlay.Material.Dark.ActionBar

এগুলি কেবল নতুন actionBarThemeঅ্যাট্রিবিউটের মাধ্যমে অ্যাকশন বারের সাহায্যে ব্যবহার করা উচিত , বা সরাসরি আপনার সরঞ্জামদণ্ডে সেট করা উচিত।

শুধুমাত্র কিছু এই বর্তমানে তাদের পিতামাতার প্রতি ভিন্নভাবে যে তারা পরিবর্তন হয় colorControlNormalহতে android:textColorPrimary, এইভাবে কোনো টেক্সট তৈরীর এবং আইকন অস্বচ্ছ।


155

থিম.এপকম্প্যাট পুরো অ্যাপ্লিকেশনের জন্য গ্লোবাল থিম সেট করতে ব্যবহৃত হয়। থিম ওভারলে.অ্যাপকম্প্যাটটি নির্দিষ্ট মতামত, বিশেষত সরঞ্জামদণ্ডের জন্য সেই থিমটিকে ওভাররাইড (বা "ওভারলে") করতে ব্যবহৃত হয়।

কেন এটি প্রয়োজনীয় এটির জন্য একটি উদাহরণ দেখি।

অ্যাকশনবার সহ অ্যাপ্লিকেশন থিম

অ্যাকশনবারটি সাধারণত একটি অ্যাপে প্রদর্শিত হয়। আমি colorPrimaryমানটি সেট করে এটির রঙটি বেছে নিতে পারি । তবে থিম পরিবর্তন করা অ্যাকশনবারের পাঠ্যের রঙ পরিবর্তন করে।

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

এখানে চিত্র বর্ণনা লিখুন

যেহেতু আমার প্রাথমিক রঙটি গা blue় নীল, তাই আমার সম্ভবত থিমগুলির মধ্যে একটি ব্যবহার করা উচিত যা অ্যাকশন বারে হালকা পাঠ্যের রঙ ব্যবহার করে কারণ কালো লেখাটি পড়া শক্ত।

অ্যাকশনবারটি লুকানো এবং একটি সরঞ্জামদণ্ড ব্যবহার করা

থিম.ম্যাটারিয়ালের চেয়ে থিম.অ্যাপকম্প্যাট ব্যবহারের সম্পূর্ণ বিষয়টি হ'ল আমরা Android এর পুরানো সংস্করণগুলিকে আমাদের উপাদান ডিজাইনের থিমটি ব্যবহার করার অনুমতি দিতে পারি। সমস্যাটি হচ্ছে Android এর পুরানো সংস্করণগুলি অ্যাকশনবারকে সমর্থন করে না। সুতরাং, ডকুমেন্টেশনটি অ্যাকশনবারটি লুকিয়ে রাখার এবং আপনার বিন্যাসে একটি সরঞ্জামদণ্ড যুক্ত করার পরামর্শ দেয়। অ্যাকশনবারটি আড়াল করতে আমাদের একটি NoActionBarথিম ব্যবহার করতে হবে । নিচের চিত্রগুলি অ্যাকশনবার লুকিয়ে থাকা সহ টুলবারটি দেখায়।

এখানে চিত্র বর্ণনা লিখুন

তবে আমি যদি ডার্ক অ্যাকশনবারের সাথে হালকা থিমের মতো কিছু চাই? যেহেতু আমাকে NoActionBar ব্যবহার করতে হবে, এটি কোনও বিকল্প নয়।

অ্যাপ থিমটি ওভাররাইড করছে

থিমওভারলে এখানে আসে। আমি আমার সরঞ্জামদণ্ডের এক্সএমএল লেআউটে অন্ধকার অ্যাকশনবার থিমটি নির্দিষ্ট করতে পারি।

<android.support.v7.widget.Toolbar
    ...
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />

এটি অবশেষে আমাদের যে প্রভাবটি চায় তা কার্যকর করতে দেয়। ডার্ক.অ্যাকশনবার থিমটি এই নির্দিষ্ট উপলক্ষে হালকা অ্যাপ্লিকেশন থিমটিকে ওভারলে করে।

এখানে চিত্র বর্ণনা লিখুন

  • অ্যাপ থিম: Theme.AppCompat.Light.NoActionBar
  • সরঞ্জামদণ্ড থিম: ThemeOverlay.AppCompat.Dark.ActionBar

আপনি যদি পপআপ মেনুটি হালকা হতে চান তবে আপনি এটি যুক্ত করতে পারেন:

app:popupTheme="@style/ThemeOverlay.AppCompat.Light"

আরও অধ্যয়ন

আমি পরীক্ষার মাধ্যমে এবং নিম্নলিখিত নিবন্ধগুলি পড়ার মাধ্যমে এটি শিখেছি।


থিমওরোলে ব্যবহারের সময় কীভাবে স্ট্যাটাস বারটি স্বচ্ছ করবেন?
জিগবাইট

আমি ভাবছি কীভাবে এটি নতুন মেটেরিয়ালটুলবারের সাথে অর্জন করবেন
ডেভিড

@ ডেভিড, আমি এখন বেশিরভাগ ফ্লাটার নিয়ে কাজ করছি, তাই আমি নতুন অ্যান্ড্রয়েড বিকাশ চালিয়ে যাইনি। আপনি যদি উত্তরটি এখানে ফিরে এসে মন্তব্য করতে নির্দ্বিধায় পান তবে আমার উত্তরটি সম্পাদনা করুন বা আপনার নিজের উত্তর যুক্ত করুন।
সুরগাচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.