【发布时间】:2017-07-11 15:25:28
【问题描述】:
嘿,我有几个相同宽度的 Textview 我将为每个 TextView 设置文本这些文本是基本不同长度的文本。现在我想根据 Textview 的最高长度设置所有 Textview 的最大行数。
我只想找到最大行数并为所有 TextView 设置相同的最大行数。有什么办法可以解决吗?
【问题讨论】:
嘿,我有几个相同宽度的 Textview 我将为每个 TextView 设置文本这些文本是基本不同长度的文本。现在我想根据 Textview 的最高长度设置所有 Textview 的最大行数。
我只想找到最大行数并为所有 TextView 设置相同的最大行数。有什么办法可以解决吗?
【问题讨论】:
你可以使用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);
}
【讨论】: