Typeface hero = Typeface.createFromAsset(getContext().getAssets(),"fonts/Hero Light.otf");
for (int i = 0; i < tabLayout.getTabCount(); i++) {
//noinspection ConstantConditions
TextView tv=
(TextView)LayoutInflater.from(this).inflate(R.layout.item_tab,null);
tv.setTypeface(hero);
tabLayout.getTabAt(i).setCustomView(tv);
}
我在&#34;这是&#34;说不兼容的类型。 Mainfragment无法转换为上下文。 请帮助,因为这是我在Tablayout上更改字体的唯一工作方式。
答案 0 :(得分:1)
此在内部类中不起作用。如果它是片段,那么尝试getActivity()和活动尝试YourActivity.this
答案 1 :(得分:1)
这是你改变字体的方式。 注意:我认为您使用的字体是兼容的。
第一种方式:
Typeface face = Typeface.createFromAsset(getAssets(),
"fonts/epimodem.ttf");
textView.setTypeface(face);
第二种方式:
textView.setTypeface(Typeface.create("sans-serif-light", Typeface.NORMAL));
Mainfragment无法转换为上下文
替换为getActivity().getApplicationContext()
的{{1}}
要访问资源,首先要访问您的活动,您可以通过getContext()
进行片段设置。要获得活动的相同应用程序上下文,请执行getActivity()
答案 2 :(得分:1)
如果你的代码在Fragment中,那么使用getActivity(),因为这里不适用于内部类。