web-dev-qa-db-fra.com

Définir une police personnalisée pour les fragments Android

J'utilise ViewPagerIndicator de Jake Wharton et j'essaie actuellement d'implémenter une police personnalisée sur l'un de mes fragments. J'ai essayé d'utiliser ce code:

   TextView txt = (TextView) findViewById(R.id.Zipcode);
    Typeface font = Typeface.createFromAsset(getAssets(), "fonts/customfont.ttf");
    txt.setTypeface(font); 

Dans onCreate pour l'activité principale, il en résulte une exception de pointeur null dans logcat et occasionnellement typeface cannot be made. J'ai également essayé de définir la police dans le fragment lui-même dans onCreate et onCreateView, mais findViewById et getAssests() sont des méthodes inconnues dans la portée du fragment.

Je ne parviens pas à déterminer si la police de caractères est le problème ou si j'essaie de définir le problème.

20
Nick

Tu peux essayer ça

@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;
}

avec cela, vous pouvez avoir le contexte dans la portée du fragment et obtenir la vue et les actifs 

58
EkKoZ

Définir le caractère dans votre classe ViewHolder`

Typeface customFontBold= Typeface.createFromAsset(getActivity().getAssets(),"fonts/JosefinSans-Bold.ttf");

comme ça.

0
Abhi Soni