【问题标题】:How to change text size from OnCreate using code in Kotlin如何使用 Kotlin 中的代码从 OnCreate 更改文本大小
【发布时间】:2019-08-20 18:56:29
【问题描述】:

我有一个具有 Spinner 和 TextView 的活动。我想使用 Spinner 来更改 TextView 中的文本大小。微调器中有三种尺寸(小、中和大)我将这些尺寸放在 dimen.xml 中。我如何使用微调器来更改尺寸? 我试过这段代码,但它没有工作

val fontSize = arrayOf("large", "medium", "small")

    spinner.adapter = ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, fontSize)
    spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener{
        override fun onNothingSelected(parent: AdapterView<*>?) {
        }

        override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
            when(position){
                0 -> {
                    textView.textSize = R.dimen.font_large.toFloat()
                }
                1 ->{
                    textView.textSize = R.dimen.font_medium.toFloat()
                }
                2 ->{
                    textView.textSize = R.dimen.font_small.toFloat()
                }
            }
        }
    }

【问题讨论】:

    标签: kotlin text-size


    【解决方案1】:

    您必须更改您的whenR.dimen.font_large.toFloat() 返回错误值。

    你必须从资源中获取R.dimen.font_large

    when (position) {
        0 -> R.dimen.font_large
        1 -> R.dimen.font_medium
        2 -> R.dimen.font_small
        else -> null
    }?.let {
        textView.textSize = resources.getDimension(it)
    }
    

    dimens.xml 中,您必须使用sp 存储值:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <dimen name="font_small">10sp</dimen>
        <dimen name="font_medium">20sp</dimen>
        <dimen name="font_large">30sp</dimen>
    </resources>
    

    【讨论】:

    • 谢谢你,你真的帮了我
    • 直接设置值对我有用。例如。 headerTitle.textSize = 24f.
    猜你喜欢
    • 2022-09-20
    • 2021-05-12
    • 1970-01-01
    • 2021-06-01
    • 2013-05-20
    • 2011-10-06
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多