android - 增加 TextView 的 TextSize 然后减小它不会返回到 View 元素的正常高度

标签 android textview imageview android-linearlayout

我是 Android 的新手,如果没有这个论坛,我永远不会达到现在的水平。 这是我的问题: 我正在使用一个简单的 LinearLayout 和一个垂直位于 TextView 上方的 ImageView。我的目标是显示一系列屏幕,顶部是图像,底部是简短的文本标题。文本是可换行的,图像应该缩放以填充剩余的可用垂直空间。

如果我保持文本字体大小不变(我通常使用 .setTextSize(35)),一切正常。问题是当我显示空图像时,我选择放大文本 (.setTextSize(120))。这行得通..但是当我接下来显示后续图像并将文本大小恢复为 35 时,图像底部和现在较小的文本区域顶部之间有一个很大的未填充间隙。

似乎正在发生的事情是,使用较大的文本大小曾经以某种方式永久增加了 TextView 的最小高度。我试过清除 TextView (.setText("").. 将大小更改为非常小 (.setTextSize(12)... 并无休止地摆弄 LinearLayout 参数(重量,重力)...无济于事。欢迎任何有关如何解决此问题的想法。

<ImageView android:id="@+id/img" android:layout_width="match_parent"
    android:layout_height="0dp" android:layout_weight="1.0" android:layout_gravity="fill_vertical" android:contentDescription="@string/desc" />

<TextView android:id="@+id/caption" android:layout_width="match_parent"
    android:layout_height="wrap_content" android:layout_weight="0" android:layout_gravity="bottom"
    android:gravity="center"/>

最佳答案

***发帖后发现的解决办法:原来这是Android 3.1以来的已知bug。参见 Android:TextView height doesn't change after shrinking the font size .

在此处列出的推荐解决方案/解决方法中,我喜欢的是每次设置文本时执行以下操作:

setText("我是一个文本",TextView.BufferType.SPANANABLE);

或者在调整文本大小后执行:setText(getText(),TextView.BufferType.SPANANABLE);

关于android - 增加 TextView 的 TextSize 然后减小它不会返回到 View 元素的正常高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17160588/

相关文章:

ios - 将 uilabel 和 uiimageview 保存为 uiimage

Android Studio 3.5 我的按钮怎么了?

android - 带有上标的 Textview 文本

java - 当重力=顶部时,文本不会从顶部开始

android - 在 TextView 中为特定字符设置下标和上标?

android - 如何在android中使用位置设置这两个不同的图像?

android - 应用程序因自定义 ListView 中的 NullPointerException 而崩溃

android - 在 android 中进行 Json 调用

java - 如何 promise 完成多个线程?

android - 通过 XML 循环的 ImageView