gpt4 book ai didi

android - 约束布局基线到基线与自动调整大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:51:14 26 4
gpt4 key购买 nike

我正在尝试按基线对齐 2 个 TextView ,并同时对文本大小使用自动调整大小。这是简化的代码示例。第一个 textview 有大尺寸,所以 textsize 自动设置为一些大的值。第二个 TextView 小于第一个 TextView ,因此它具有较小的自动确定的文本大小。

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<TextView
android:id="@+id/text1"
android:layout_width="200dp"
android:layout_height="100dp"
android:text="text1"
android:maxLines="1"
android:autoSizeTextType="uniform"
android:autoSizeMaxTextSize="200sp"
android:autoSizeMinTextSize="2sp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/text2"
app:layout_constraintTop_toTopOf="parent"/>

<TextView
android:id="@+id/text2"
android:layout_width="50dp"
android:layout_height="20dp"
android:text="text2"
android:maxLines="1"
android:autoSizeTextType="uniform"
android:autoSizeMaxTextSize="200sp"
android:autoSizeMinTextSize="2sp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toRightOf="@+id/text1"
app:layout_constraintBaseline_toBaselineOf="@id/text1"/>

</android.support.constraint.ConstraintLayout>

result of example code

问题是 layout_constraintBaseline_toBaselineOf 似乎在我使用 autoSizeTextType 后立即停止工作

如果有人能给我指明正确的方向,那就太好了。我理解错了如何使用 constraintlayout 吗?或者只是 baseline_tobaseline 不适用于自动调整大小?

最佳答案

我正在使用 hack 来解决这个问题。

幸运的是,我有两个词,所以最后我想出了类似的东西:

private fun getCorrectTextValue(value: Number): SpannableString {
val currency = getString(R.string.common_currency)
val formatter = NumberFormat.getInstance(Locale.getDefault())
val ss = SpannableString("${formatter.format(value)} $currency")
ss.setSpan(AbsoluteSizeSpan(resources.getDimensionPixelSize(R.dimen.max_text_size)), value.toString().length, value.toString().length + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
return ss
}

对我有用

也许你可以使用 SpannableString 添加一个空白字符并设置它的高度:

ss.setSpan(AbsoluteSizeSpan(resources.getDimensionPixelSize(R.dimen.max_text_size)), value.toString().length, value.toString().length + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)

关于android - 约束布局基线到基线与自动调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48546863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com