【发布时间】:2018-10-08 20:44:25
【问题描述】:
有没有办法检查 TextView 的文本是否超过最大行数?我找到了TextView.getLineCount(),但这只能告诉我我是否使用了最大行数,而不是我是否超过了它。
编辑:
到目前为止,我有:
text_view.post(new Runnable() {
@Override
public void run() {
if (text_view.getLineCount() < text_view.getMaxLines()) {
// do stuff
}
}
});
但这不会检测它是否超过最大行数,即如果它使用大于或等于最大行数,if 语句将通过。这是因为如果它使用超过最大行数,那么 getLineCount 只会返回最大行数,永远不会更多。
请注意,文本视图的文本在我的代码中以编程方式设置得更高,而不是在 XML 中硬编码。
【问题讨论】:
-
超出最大行数是什么意思?你想给出最大行数吗?
-
@Davide 如果它超过了 XML 中设置的 TextView 的最大行数。要在 Java 中访问,它是 TextView.getMaxLines()。因此,例如,如果文本需要 10 行但最大行数为 5,则第 6-10 行将被截断,我想检测何时发生这种情况。
-
不确定这是否是您要查找的内容,但您可以使用this answer 中提出的算法来计算
Textview有多少完全可见的行。 -
@Onik 你能把它作为答案吗?我找到了一种方法(并在此处将其写为答案),但这有点像解决方法...
-
@android 开发者,实际上我不知道关于 OP 要求的解决方案可以使用什么标准。您是否尝试过解决方案?在我看来,Paradox 可能会设置
android:minLines=5并检查页数是否超过 2。但是,我认为有更好的解决方案,并且在测试之前不想发布我的假设。