Шрифты Google, не работающие из файла макета Android XML (иногда), должны быть установлены программно через ResourcesCompat.getFont
Google недавно сделал Google Fonts доступными для использования в Android, и это здорово! Самый простой / самый простой способ применить шрифт к TextView (при условии, что шрифт уже существует в папке ресурсов шрифта, что очень легко сделать, выбрав TextView в окне дизайна), - применить его непосредственно к XML TextView как таковой
<TextView
android:id="@+id/my_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/montserrat" />
Это отлично работало в первом упражнении, в котором я его пробовал, но затем, когда я попытался использовать точно такую же настройку во втором упражнении, это не удалось. Шрифты не будут считываться из свойства XML android:fontFamily
даже для тех же самых шрифтов, которые я использовал в предыдущем упражнении.
К счастью, я все еще смог заставить работать шрифты, настроив их программно следующим образом
@FontRes private static final int TITLE_FONT = R.font.acme;
@FontRes private static final int SUBTITLE_FONT = R.font.acme;
@FontRes private static final int TEXT_FONT = R.font.ubuntu;
@FontRes private static final int VIEW_LISTING_FONT = R.font.nunito;
Typeface titleTypeface = ResourcesCompat.getFont(this, TITLE_FONT);
Typeface subtitleTypeface = ResourcesCompat.getFont(this, SUBTITLE_FONT);
Typeface textTypeface = ResourcesCompat.getFont(this, TEXT_FONT);
Typeface viewListingTypeface = ResourcesCompat.getFont(this, VIEW_LISTING_FONT);
_businessOwnerView.setTypeface(titleTypeface);
_businessNameView.setTypeface(subtitleTypeface);
_descriptionView.setTypeface(textTypeface);
_viewListingButton.setTypeface(viewListingTypeface);
Но это боль и становится громоздким. Я думаю, что я просто собираюсь создать подкласс TextView и самостоятельно прочитать шрифты, чтобы я мог снова использовать их в XML, так как чувствую, что это ошибка (учитывая, что она работала в одном действии, а не в другом, а также потому, что это относительно новая функция) но хотелось бы узнать, сталкивался ли кто-нибудь еще с этой проблемой или есть идеи для ее решения?