gpt4 book ai didi

android - Android TextView 上的最大行长度

转载 作者:行者123 更新时间:2023-12-02 21:21:03 26 4
gpt4 key购买 nike

我将格式化的单行文本(无\n)放入不可编辑的 TextView 中。在程序的导航中,可以更改文本。在某些文本上,TextView 缩小到 0x0 像素,但我什么也看不到!我添加了一些菜单,每次将文本截断 10 个字符,我发现如果字符数大于 4470,TextView 就会缩小。

通过在中间放置\n 将文本分成几行可以解决问题,但这不是我的 Intent 。

您能帮我看看这是否有记录,或者是否可以设置任何内容来消除此限制?

最佳答案

我做了一些测试。看来这个值不是固定的。它每次都上下移动。但也有一些限制:

  • TextView.maxLines 默认为 Integer.MAX_VALUE (2147483647)
  • TextView.maxEms 默认为 Integer.MAX_VALUE
  • Java 字符串一般为 Integer.MAX_VALUE 或最大值的一半堆大小

在我的第一次测试中,单行最多可处理 179 899 个字符。通过将 android:maxLength="10000000" 添加到 xml,我得到了 184 200。但这个数字只发挥过一次作用。在每个字符后都有一个 \n 换行符,我得到了大约 750 000

有趣的是,textView 从未像那时那样缩小。应用程序崩溃了:

Throwing OutOfMemoryError "Failed to allocate a 32 byte allocationwith 0 free bytes and 0B until OOM, target footprint 536870912, growthlimit 536870912" (VmSize 2143664 kB, recursive case)

我使用了具有 1536 mb 内存、256mb 堆的 Pixel 3 API 29 模拟器和以下代码:

StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i<750000; i++) {
stringBuilder.append("A\n");
}
textView.setText(stringBuilder);

我在 documentation 中没有找到任何内容.

最重要的是,没有实际的最大内存,而且现在手机的内存要大得多......

关于android - Android TextView 上的最大行长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026824/

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