আমি আমার অ্যাপ্লিকেশনটির জন্য 2 টি নির্বাচনযোগ্য থিম রাখতে চাই। এটি করার জন্য, আমি এই জাতীয় কিছু বৈশিষ্ট্য সংজ্ঞায়িত করেছি:
<attr format="color" name="item_background" />
তারপরে, আমি উভয় থিম তৈরি করেছি, এর মতো:
<style name="ThemeA">
<item name="item_background">#123456</item>
</style>
<style name="ThemeB">
<item name="item_background">#ABCDEF</item>
</style>
এই পদ্ধতিটি দুর্দান্ত কাজ করে, আমাকে বেশ কয়েকটি থিম সহজেই তৈরি এবং সংশোধন করার অনুমতি দেয়। সমস্যাটি হ'ল মনে হচ্ছে এটি কেবলমাত্র ভিউগুলিতে ব্যবহার করা যেতে পারে, এবং ড্রয়যোগ্যগুলিতে নয় ।
উদাহরণস্বরূপ, একটি বিন্যাসের অভ্যন্তরীণ ভিউ থেকে একটি মান উল্লেখ করা কাজ করে:
<TextView android:background="?item_background" />
তবে অঙ্কনযোগ্যতে একই কাজটি করে না:
<shape android:shape="rectangle">
<solid android:color="?item_background" />
</shape>
অ্যাপ্লিকেশনটি চালানোর সময় আমি এই ত্রুটিটি পেয়েছি:
java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
?item_background
আমি পরিবর্তে যদি একটি হার্ডকোডযুক্ত রঙ ব্যবহার করি তবে এটি কার্যকর হয় তবে এটি আমার থিমগুলি ব্যবহার করতে দেয় না। আমি চেষ্টাও করেছি ?attr:item_background
, কিন্তু একই ঘটনা ঘটে।
আমি এই কিভাবে করতে পারে? এবং এটি দৃশ্যগুলিতে কিন্তু ড্রয়যোগ্যগুলিতে নয় কেন? ডকুমেন্টেশনের কোথাও আমি এই সীমাবদ্ধতাটি খুঁজে পাচ্ছি না ...