在我的应用程序中,我有一个屏幕,在其中显示一些文本,然后显示一张照片。文本的长度是可变的(有时根本没有,有时很多),所以我想设置它,这样文本永远不会超过几行(但可以滚动),为下图留出足够的空间。

这部分的 View 组件是通过编程创建的,我已经调整了代码以具有以下内容(当前在我的文本设置方法中,但如果它在初始 View 创建代码中,则会发生同样的事情)

public void SetDescription(String description)
{
    mTxtDescription.setText(Html.fromHtml(description));
    mTxtDescription.setClickable(true);
    mTxtDescription.setMaxLines(5);
    mTxtDescription.setLines(5); //this makes no difference either!
    mTxtDescription.setSingleLine(false);
    mTxtDescription.setScrollbarFadingEnabled(true);
    mTxtDescription.setScrollBarStyle(VERTICAL);
    mTxtDescription.setMovementMethod(ScrollingMovementMethod.getInstance());
    mTxtDescription.invalidate(); //adding this made no difference...
}

但是它不起作用 - 长文本仍然填满整个屏幕,并且图像由于被推到 0 的高度而消失了。我怎样才能让文本永远不超过 5 行?

最佳答案

尝试删除对 setSingleLine 的调用。并使用 setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE) 。它还可以将这个调用放在 setMaxLinessetLines 调用之前。

注意: setLines 覆盖 setMaxLinessetMinLines 的设置。
TextView 围绕如何显示多个、椭圆等的各种调用存在许多问题。

关于android - TextView.setMaxLines 不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11408922/

10-10 08:35