Android 折叠工具栏布局字体不以编程方式更改

Android 折叠工具栏布局字体不以编程方式更改,android,kotlin,android-collapsingtoolbarlayout,android-fonts,android-typeface,Android,Kotlin,Android Collapsingtoolbarlayout,Android Fonts,Android Typeface,在出现意外错误后,设置自定义字体会出现问题。为什么在我将字体添加到正确位置时会出现此错误 font/my_font.otf 尝试对空对象引用调用虚拟方法“boolean android.content.Context.isRestricted()” 如果您将字体放在assets/font/my\u font.otf: class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState:

在出现意外错误后,设置自定义字体会出现问题。为什么在我将字体添加到正确位置时会出现此错误

font/my_font.otf
尝试对空对象引用调用虚拟方法“boolean android.content.Context.isRestricted()”


如果您将字体放在assets/font/my\u 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)
    }
}
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)
    }
}

如果将字体置于res/font/my\u 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)
    }
}
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)
    }
}

@MacaronLover您是否从类中删除了
private val mTypeface=Typeface.createFromAsset(assets,“my_font.otf”)
?我用您的代码替换了我的代码,但出现此错误
font-asset-not-found-font/my_font.otf
。这是否应该放在
assets
文件夹中?@MacaronLover我更新了我的答案,您的问题来自错误的字体位置引用。