💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ احمدرضا عبداللهی
material 3
جامعه جاوا (اندروید) ایجاد شده در ۲۷ اسفند ۱۴۰۲

وقت بخیر

چطور وقتی theme اصلی پروژه MaterialComponent هست، برای یک view خاص مثلا fab از material3 استفاده کنیم؟

مورد بعدی اینکه اگر بخوایم از material3 برای theme اصلی پروژه استفاده کنیم، رنگ بندی پروژه بهم میریزه مثلا colorprimary روی toolbar ست نمیشه، چطور میشه این مورد رو حل کرد؟

سلام،

برای استفاده از مؤلفه‌های Material3 در یک پروژه با تم اصلی MaterialComponent، می‌توانید از ویژگی android:theme در اندروید استفاده کنید. این ویژگی به شما امکان می‌دهد تا یک تم خاص را برای یک ویو مشخص تعریف کنید.

برای مثال، برای استفاده از FloatingActionButton در سبک Material3 می‌توانید کد زیر را در فایل layout.xml خود قرار دهید:

<com.google.android.material.floatingactionbutton.FloatingActionButton
   android:id="@+id/fab"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:theme="@style/Theme.MaterialComponents.Light" />

در این مثال، تم Theme.MaterialComponents.Light به FloatingActionButton اعمال می‌شود، در حالی که بقیه ویوها از تم اصلی پروژه پیروی می‌کنند.

 

در مورد استفاده از Material3 برای تم اصلی پروژه و مشکل رنگ‌بندی، می‌توانید از سیستم رنگ‌بندی جدید در Material3 استفاده کنید. Material3 از یک سیستم جدید برای تعریف رنگ‌ها با نام "Dynamic Color" استفاده می‌کند. این سیستم به شما امکان می‌دهد تا رنگ‌های اصلی و ثانویه را تعریف کنید و سایر رنگ‌ها به صورت خودکار از آن‌ها مشتق می‌شوند.

برای استفاده از این سیستم رنگ‌بندی، باید یک تم جدید از Material3 ایجاد کنید و رنگ‌های اصلی و ثانویه را در آن تعریف کنید. سپس می‌توانید این تم را به عنوان تم اصلی پروژه خود تنظیم کنید. مثال زیر نحوه ایجاد یک تم جدید با رنگ‌های سفارشی را نشان می‌دهد:

<style name="Theme.MyApp" parent="Theme.Material3.Light.NoActionBar">
   <item name="colorPrimary">@color/my_primary_color</item>
   <item name="colorOnPrimary">@color/my_on_primary_color</item>
   <item name="colorPrimaryContainer">@color/my_primary_container_color</item>
   <item name="colorOnPrimaryContainer">@color/my_on_primary_container_color</item>
   <item name="colorSecondary">@color/my_secondary_color</item>
   <item name="colorOnSecondary">@color/my_on_secondary_color</item>
   <item name="colorSecondaryContainer">@color/my_secondary_container_color</item>
   <item name="colorOnSecondaryContainer">@color/my_on_secondary_container_color</item>
</style>

در این مثال، رنگ‌های اصلی و ثانویه با استفاده از colorPrimary، colorOnPrimary، colorPrimaryContainer، colorOnPrimaryContainer، colorSecondary، colorOnSecondary، colorSecondaryContainer و colorOnSecondaryContainer تعریف شده‌اند. سپس می‌توانید این تم را در فایل styles.xml خود تعریف کنید و در فایل AndroidManifest.xml به عنوان تم اصلی برنامه تنظیم کنید.

با استفاده از این روش، رنگ‌بندی پروژه شما به درستی با Material3 همگام خواهد شد و مشکلات رنگ‌بندی را نخواهید داشت.

محسن موحد ۲۸ اسفند ۱۴۰۲، ۰۱:۴۴