CollapsingToolbarLayout字体没有以编程方式更改

问题描述 投票:2回答:1

遇到意外错误后,设置自定义字体变得成问题。将字体添加到正确的位置后,为什么还会出现此错误?

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)
    }
}
android kotlin android-collapsingtoolbarlayout android-fonts android-typeface
1个回答
1
投票

如果将字体放入资产/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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.