友
我在LinearLayout
中有3个文字视图,其宽度为300dp
。每个文字视图的layout_weight
均为1,因此屏幕将在三个TextViews
之间平均分配。
[text view 1] [text view 2] [text view 3]
大多数情况下,文本在每个TextView中都适合一行,但有些情况下却没有。有什么方法可以确定Text需要两行并将TextView的行数参数设置为2?
如果其中一个TextView需要2行而不是所有三个TextView应该设置为两行
答案 0 :(得分:1)
简短的回答是肯定的 - TextView有一个getLineCount()
方法,可以告诉你TextView有多少行文本。
不幸的是,有一点需要注意 - 在此方法正常工作之前,必须先布置和测量TextView。
如果您要动态设置文本(例如,通过setText()
),那么您需要创建回调,以便布局传递发生时如下:
mTextView1.getViewTreeObserver()
.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if (mTextView1.getLineCount() > 1) { // or textView2, etc.
// Adjust all text view heights
}
}
});