এই প্রশ্নটি অনেক জায়গায় বিভিন্নভাবে জিজ্ঞাসা করা হয়। আমি মূলত এটির উত্তর এখানে দিয়েছি তবে আমি এই থ্রেডে এটিও প্রাসঙ্গিক বলে মনে করি (যেহেতু আমি যখন উত্তরটি খুঁজছিলাম তখন এখানেই শেষ হয়েছিল)।
এই সমস্যার কোনও লাইন সমাধান নেই, তবে এটি আমার ব্যবহারের ক্ষেত্রে কাজ করেছে। সমস্যাটি হ'ল, 'দেখুন (প্রসঙ্গ, অনুগ্রহকারী, ডিফস্টাইল)' কনস্ট্রাক্টর কোনও আসল শৈলীর উল্লেখ করে না, এটি একটি বৈশিষ্ট্য চায়। সুতরাং, আমরা করব:
- একটি বৈশিষ্ট্য নির্ধারণ করুন
- আপনি যে স্টাইলটি ব্যবহার করতে চান তা তৈরি করুন
- আমাদের থিমটিতে সেই বৈশিষ্ট্যের জন্য একটি শৈলী প্রয়োগ করুন
- সেই গুণটি সহ আমাদের দৃশ্যের নতুন দৃষ্টান্ত তৈরি করুন
'Res / মান / attrs.xml' এ, একটি নতুন বৈশিষ্ট্য সংজ্ঞায়িত করুন:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="customTextViewStyle" format="reference"/>
...
</resources>
রেস / মান / স্টাইলস.এক্সএমএলে 'আমি আমার কাস্টম টেক্সটভিউতে যে স্টাইলটি ব্যবহার করতে চাই তা তৈরি করতে চলেছি
<style name="CustomTextView">
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:paddingLeft">14dp</item>
</style>
'রেস / মান / থিমস.এক্সএমএল' বা 'রেস / মান / স্টাইলস.এক্সএমএল' এ আপনার অ্যাপ্লিকেশন / ক্রিয়াকলাপের জন্য থিমটি সংশোধন করুন এবং নিম্নলিখিত শৈলীটি যুক্ত করুন:
<resources>
<style name="AppBaseTheme" parent="android:Theme.Light">
<item name="@attr/customTextViewStyle">@style/CustomTextView</item>
</style>
...
</resources>
অবশেষে, আপনার কাস্টম টেক্সটভিউতে, আপনি এখন বৈশিষ্ট্যটির সাথে নির্মাতা ব্যবহার করতে পারেন এবং এটি আপনার স্টাইলটি গ্রহণ করবে
public class CustomTextView extends TextView {
public CustomTextView(Context context) {
super(context, null, R.attr.customTextView);
}
}
এটি লক্ষণীয় যে আমি বারবার বিভিন্ন রূপ এবং বিভিন্ন জায়গায় কাস্টম টেক্সটভিউ ব্যবহার করেছি, তবে ভিউটির নামটি শৈলী বা বৈশিষ্ট্য বা কোনও কিছুর সাথে মেলে এমন কোনও প্রয়োজন নেই। এছাড়াও, এই কৌশলটি কেবল পাঠ্য ভিউগুলি নয়, যে কোনও কাস্টম ভিউয়ের সাথে কাজ করবে।