Как я могу изменить шрифты в Android с помощью Kotlin? - PullRequest
2 голосов
/ 18 мая 2019

Я пытаюсь изменить шрифт, но не работает. Возвращается "null", поскольку я установил значение в XML, а также в коде.

Код Котлина

 val typeFace = Typeface.createFromAsset(tvThanks.context.assets, "dinpro_medium.ttf")
        tvThanks.setTypeface(typeFace)
<TextView
    android:id="@+id/tvThanks"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/text_here"/>

ERROR

java.lang.IllegalStateException: tvThanks must not be null
    at br.com.adrianofpinheiro.testesantander.fragment.ContatoEnviadoFragment.onCreate(ContatoEnviadoFragment.kt:21)

Ответы [ 2 ]

0 голосов
/ 21 мая 2019
class Photos : Fragment() {
private lateinit var rootView: View
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
    rootView = inflater.inflate(R.layout.skeleton_photos_tab, container, false)
    return rootView
}

}

Теперь вы можете сделать это.

rootView.tvThanks.setTypeface(typeFace)
0 голосов
/ 20 мая 2019

Ваш фрагмент должен иметь свойство context без получения от tvThanks.

Я думаю, вы можете попробовать сделать это внутри onCreateView вашего фрагмента

 val typeFace = Typeface.createFromAsset(context.assets, "dinpro_medium.ttf")
        tvThanks!!.setTypeface(typeFace)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...