Hai我有几个Textview具有相同的宽度我将为每个TextView设置文本这些文本是一个基本不同的文本长度。现在我想根据Textview的最大长度设置所有Textview的最大行数。
我只想找到最大行数并为所有TextView设置相同的最大行数。有什么可能吗?
答案 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);
}