编译时文本需要的行数

时间:2014-06-30 19:02:00

标签: android android-layout

我在LinearLayout中有3个文字视图,其宽度为300dp。每个文字视图的layout_weight均为1,因此屏幕将在三个TextViews之间平均分配。

  

[text view 1] [text view 2] [text view 3]

大多数情况下,文本在每个TextView中都适合一行,但有些情况下却没有。有什么方法可以确定Text需要两行并将TextView的行数参数设置为2?

如果其中一个TextView需要2行而不是所有三个TextView应该设置为两行

1 个答案:

答案 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
            }
        }
    });