Android textview根据Stirng设置最大行数

时间:2017-07-11 15:25:28

标签: android gridview textview

Hai我有几个Textview具有相同的宽度我将为每个TextView设置文本这些文本是一个基本不同的文本长度。现在我想根据Textview的最大长度设置所有Textview的最大行数。

我只想找到最大行数并为所有TextView设置相同的最大行数。有什么可能吗?

1 个答案:

答案 0 :(得分:0)

您可以使用getLineCount()

使用

public int getLine(Textview textview){
    textview.post(new Runnable() {
        @Override
        public void run() {
            return textview.getLineCount();
        }
    });
}

然后你需要迭代所有的textview

示例:您有一组Textview

数组
List<TextView> texts = new ArrayList<>();
texts.add(textview1);
texts.add(textview2);
texts.add(textview3);

然后迭代所有这些

List<int> number = new ArrayList<>();
for(TextView txt: texts){
    number.add(getLine(txt));
}

然后比较数字

int maxNumber = Collections.max(number);
for(TextView txt: texts){
    txt.setMaxLines(maxNumber);
}



如果你在gridview中使用适配器...试试这个来获取视图

public TextView GetViewByPosition(int position) {
    int firstPosition = this.getFirstVisiblePosition();
    int lastPosition = this.getLastVisiblePosition();

    if ((position < firstPosition) || (position > lastPosition))
        return null;

    return (TextView)this.getChildAt(position - firstPosition);
}