Настройка пользовательского шрифта для фрагментов Android
Я использую Jake Wharton ViewPagerIndicator, и в настоящее время я пытаюсь реализовать собственный шрифт на одном из моих фрагментов. Я пробовал использовать этот код:
TextView txt = (TextView) findViewById(R.id.Zipcode);
Typeface font = Typeface.createFromAsset(getAssets(), "fonts/customfont.ttf");
txt.setTypeface(font);
В onCreate
для основной активности, которая приводит к исключению нулевого указателя в logcat, а иногда typeface cannot be made
. Я также попытался установить шрифт в самом фрагменте как в onCreate
, так и onCreateView
, однако findViewById
и getAssests()
- неизвестные методы в области фрагмента.
У меня возникли проблемы с выяснением, является ли проблема шрифтом или где я пытаюсь установить fon't. Это проблема.
Ответы
Ответ 1
Вы можете попробовать это
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_layout, container, false);
TextView txt = (TextView) v.findViewById(R.id.Zipcode);
Typeface font = Typeface.createFromAsset(getActivity().getAssets(), "fonts/customfont.ttf");
txt.setTypeface(font);
return v;
}
с этим вы можете иметь контекст в области фрагмента и получить представление и активы
Ответ 2
Определить шрифт в классе yourViewHolder`
Typeface customFontBold= Typeface.createFromAsset(getActivity().getAssets(),"fonts/JosefinSans-Bold.ttf");
как это.
Ответ 3
Мой простой код - это метод вызова метода "контекст" в фрагмент с "getContext(); // является getContext и getActvity одинаковым в фрагменте
**result**.setText("Value Expenses = " +expenses);
Typeface supercell = Typeface.createFromAsset(**getContext()**.getAssets(), "fonts/Supercell.ttf");**
**result.setTypeface(supercell);**
}catch (Exception e)
{
Toast.makeText(getActivity(), "SUCCEED, VALUES RESULT", Toast.LENGTH_SHORT)
.show();
}
break;