আন্ড্রেই হিসাবে উত্তর , আপনি ট্যাবলআউট ক্লাস প্রসারিত করে ফন্টফেস পরিবর্তন করতে পারেন । এবং Penzzz যেমন বলেছে, আপনি এটি অ্যাডট্যাব পদ্ধতিতে করতে পারবেন না । বেনো হিসাবে লেআউট পদ্ধতিটি ওভাররাইড করুন :
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom){
super.onLayout(changed, left, top, right, bottom);
final ViewGroup tabStrip = (ViewGroup)getChildAt(0);
final int tabCount = tabStrip.getChildCount();
ViewGroup tabView;
int tabChildCount;
View tabViewChild;
for(int i=0; i<tabCount; i++){
tabView = (ViewGroup)tabStrip.getChildAt(i);
tabChildCount = tabView.getChildCount();
for(int j=0; j<tabChildCount; j++){
tabViewChild = tabView.getChildAt(j);
if(tabViewChild instanceof AppCompatTextView){
if(fontFace == null){
fontFace = Typeface.createFromAsset(context.getAssets(), context.getString(R.string.IranSans));
}
((TextView) tabViewChild).setTypeface(fontFace, Typeface.BOLD);
}
}
}
}
অবশ্যই লেআউট পদ্ধতিতে ওভাররাইট করা আবশ্যক, কারণ যখন আপনি ভিউপ্যাজারের সাথে ট্যাবলাইআউট বাঁধতে সেটআপ উইথভিউপাগার পদ্ধতি ব্যবহার করেন, আপনাকে সেটটেক্সট পদ্ধতিতে বা তারপরে পেজারআডাপ্টারে ট্যাব পাঠ্য নির্ধারণ করতে হয় এবং যখন এটি ঘটে তখন অন-লেআউট পদ্ধতিটি প্যারেন্ট ভিউগ্রুপের কাছে কল করা হয় ( ট্যাবলআউট) এবং সেটিংস হ'ল ফন্টফেস স্থাপন করার জায়গা ((একটি পাঠ্যদর্শন পাঠ্য পরিবর্তন করার কারণে এটি পিতামাতার লেআউট পদ্ধতিতে কল করার কারণ রয়েছে - একটি ট্যাবভিউয়ের দুটি শিশু রয়েছে, একটিতে চিত্র ভিউ অন্যটি টেক্সটভিউ রয়েছে)
আরেকটি সমাধান:
প্রথমত, কোডগুলির এই লাইনগুলি:
if(fontFace == null){
fontFace = Typeface.createFromAsset(context.getAssets(), context.getString(R.string.IranSans));
}
উপরের সমাধানে দুটি লুপের বাইরে লেখা উচিত।
তবে এর জন্য আরও ভাল সমাধান API এর = = 16 অ্যান্ড্রয়েড ব্যবহার করছে : হরফফ্যামিলি :
একটি অ্যান্ড্রয়েড রিসোর্স ডিরেক্টরি নামের ফন্ট তৈরি করুন এবং আপনার পছন্দসই ফন্টটি ডিরেক্টরিতে অনুলিপি করুন।
তারপরে এই স্টাইলগুলি ব্যবহার করুন:
<style name="tabLayoutTitles">
<item name="android:textColor">@color/white</item>
<item name="android:textSize">@dimen/appFirstFontSize</item>
<item name="android:fontFamily">@font/vazir_bold</item>
</style>
<style name="defaultTabLayout">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/defaultTabLayoutHeight</item>
<item name="android:gravity">right</item>
<item name="tabTextAppearance">@style/tabLayoutTitles</item>
<item name="tabSelectedTextColor">@color/white</item>
<item name="tabIndicatorColor">@color/white</item>
<item name="tabIndicatorHeight">@dimen/accomTabIndicatorHeight</item>
<item name="tabMode">fixed</item>
<item name="tabGravity">fill</item>
<item name="tabBackground">@drawable/rectangle_white_ripple</item>
<item name="android:background">@color/colorPrimary</item>
</style>