我是靠谱客的博主 超级音响,最近开发中收集的这篇文章主要介绍android settext里面的参数,android 更改TextView参数后,给定文本无法应用于TextView - 糯米PHP...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

因此,我进行了扩展以在TextView中实现预计算文本。

自从迁移到Material Components Theme以来,我一直遇到错误。

这是下面的代码。

我还尝试了将所有TextViews和AppCompatTextViews迁移到MaterialTextView。但是问题仍然存在。

fun AppCompatTextView.setTextFuture(string: String?) {

val precomputedText =

PrecomputedTextCompat.getTextFuture(

string ?: "",

TextViewCompat.getTextMetricsParams(this),

null

)

textMetricsParamsCompat = precomputedText.get().params

setTextFuture(precomputedText)

text = string

}

fun AppCompatTextView.setTextFuture(charSequence: CharSequence?) {

val precomputedText =

PrecomputedTextCompat.getTextFuture(

charSequence ?: "",

TextViewCompat.getTextMetricsParams(this),

null

)

textMetricsParamsCompat = precomputedText.get().params

setTextFuture(precomputedText)

text = charSequence

}

fun AppCompatTextView.setTextFuture(stringResId: Int) {

val string = context.getString(stringResId)

val precomputedText =

PrecomputedTextCompat.getTextFuture(

string,

TextViewCompat.getTextMetricsParams(this),

null

)

textMetricsParamsCompat = precomputedText.get().params

setTextFuture(precomputedText)

text = string

}

错误如下。

Fatal Exception: java.lang.IllegalArgumentException

Given text can not be applied to TextView.

androidx.core.widget.TextViewCompat.setPrecomputedText (TextViewCompat.java:891)

androidx.appcompat.widget.AppCompatTextView.onMeasure (AppCompatTextView.java:550)

android.view.View.measure (View.java:24953)

Fatal Exception: java.lang.IllegalArgumentException

PrecomputedText's Parameters don't match the parameters of this TextView.Consider using setTextMetricsParams(precomputedText.getParams()) to override the settings of this TextView: PrecomputedText: {textSize=49.0, textScaleX=1.0, textSkewX=0.0, letterSpacing=0.03125, textLocale=[en_GB], typeface=android.graphics.Typeface@5e608edd, variationSettings=null, elegantTextHeight=false, textDir=android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal@eb941bf, breakStrategy=1, hyphenationFrequency=0}TextView: {textSize=49.0, textScaleX=1.0, textSkewX=0.0, letterSpacing=0.03125, textLocale=[en_GB], typeface=android.graphics.Typeface@5e608edd, variationSettings=null, elegantTextHeight=false, textDir=android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal@eb941bf, breakStrategy=1, hyphenationFrequency=0}

android.widget.TextView.setText (TextView.java:6724)

Fatal Exception: java.lang.IllegalArgumentException

PrecomputedText's Parameters don't match the parameters of this TextView.Consider using setTextMetricsParams(precomputedText.getParams()) to override the settings of this TextView: PrecomputedText: {textSize=70.0, textScaleX=1.0, textSkewX=0.0, letterSpacing=0.03125, textLocale=[en_CA], typeface=android.graphics.Typeface@ab2ab1bb, variationSettings=null, elegantTextHeight=false, textDir=android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal@34fe469, breakStrategy=1, hyphenationFrequency=0}TextView: {textSize=70.0, textScaleX=1.0, textSkewX=0.0, letterSpacing=0.03125, textLocale=[en_CA], typeface=android.graphics.Typeface@ab2ab1bb, variationSettings=null, elegantTextHeight=false, textDir=android.text.TextDirectionHeuristics$TextDirectionHeuristicInternal@34fe469, breakStrategy=1, hyphenationFrequency=0}

android.widget.TextView.setText (TextView.java:6731)

我的某些TextView具有这些属性

android:ellipSize="marquee"

android:singleLine="true"

isSelected = true

最后

以上就是超级音响为你收集整理的android settext里面的参数,android 更改TextView参数后,给定文本无法应用于TextView - 糯米PHP...的全部内容,希望文章能够帮你解决android settext里面的参数,android 更改TextView参数后,给定文本无法应用于TextView - 糯米PHP...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部