gpt4 book ai didi

android - 将 TextView 的各行设置为不同的宽度

转载 作者:太空狗 更新时间:2023-10-29 15:16:46 31 4
gpt4 key购买 nike

我正在尝试设置一个包含两行文本的 TextView,第二行比第一行短。

有没有办法设置 TextView 的 Layout 实例(通过 TextView.getLayout() 获取)来截断第二行,或者还有其他我不知道的方法?

编辑 1

有人误解了我的 Intent :我正在尝试以某种方式设置 TextView 布局,以便我可以设置任意文本,并且根据长度会发生以下情况:如果文本足够长以开始第二行,则使第一行与 TextView 的内容宽度一样宽,但第二行应该更短,例如宽度的一半。但如果文本足够长,应该有第二行。

我查看了抽象类Layout及其子类,有一个函数

public int getLineEnd(int line)

返回一行最后一个字符的位置。一种方法是设置文本,然后检查第二行的布局宽度,然后将文本更改为较短的版本。无论如何,这似乎是一种 hacky 方式,如果我可以自己设置 Layout 实例(通过 setter 方法,例如 getter

TextView.getLayout().

有没有人给Textview的子类设置自定义Layout?

编辑 2/我自己的解决方案

找到解决办法:现在我正在检查第二行是否与导致第二行变短的区域重叠。如果是这样,我将截断文本。我使用的功能:

TextView.getLineCount()
TextView.getLayout().getLineStart(int line)
TextView.getLayout().getLineEnd(int line)
TextView.getPaint().measureText()

也许这对 future 的任何人都有帮助。

不过,如何设置自己的布局的问题仍然没有答案。

最佳答案

尝试在您的 XML 中使用 android:maxLines="1" 或在您的 Activity 中使用 textView.setMaxLines(1);

关于android - 将 TextView 的各行设置为不同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057820/

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