Шрифт CollapsingToolbarLayout не меняется программно - PullRequest
2 голосов
/ 07 мая 2020

Установка пользовательского шрифта становится проблемой c после получения неожиданной ошибки. Почему эта ошибка даже появляется, когда я добавил шрифт в правильное место?

font/my_font.otf

Попытка вызвать виртуальный метод boolean android .content.Context.isRestricted () на ссылка на нулевой объект

class MainActivity : AppCompatActivity() {
    private val mTypeface = Typeface.createFromAsset(assets, "my_font.otf")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        collapsingToolbarLayout.title = getString(R.string.main_activity)
        collapsingToolbarLayout.setCollapsedTitleTypeface(mTypeface)
        collapsingToolbarLayout.setExpandedTitleTypeface(mTypeface)
    }
}

1 Ответ

1 голос
/ 08 мая 2020

Если вы поместите свой шрифт в assets / font / my_font.otf:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //This should solve your crashing problem
        val typeface = Typeface.createFromAsset(assets, "font/my_font.otf")
        collapsingToolbarLayout.title = getString(R.string.main_activity)
        collapsingToolbarLayout.setCollapsedTitleTypeface(mTypeface)
        collapsingToolbarLayout.setExpandedTitleTypeface(mTypeface)
    }
}

Если вы поместите свой шрифт в res / font / my_font.otf (РЕКОМЕНДУЕТСЯ ):

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //This should solve your crashing problem
        val typeface = ResourcesCompat.getFont(this, R.font.my_font)
        collapsingToolbarLayout.title = getString(R.string.main_activity)
        collapsingToolbarLayout.setCollapsedTitleTypeface(mTypeface)
        collapsingToolbarLayout.setExpandedTitleTypeface(mTypeface)
    }
}
...