LayoutInflator错误"不兼容的类型"在片段中

时间:2017-08-12 13:18:11

标签: java android

enter image description here

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上更改字体的唯一工作方式。

3 个答案:

答案 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(),因为这里不适用于内部类。