如何确定TextView中可见的行数?

时间:2014-01-31 13:16:43

标签: android textview lines

如何在TextView的可见部分显示多少行?我使用的文字并没有完全放在TextView的每个屏幕分辨率上。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/logs_text"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

String s = "very big text"
TextView logText = (TextView) view.findViewById(R.id.logs_text);
logText.setText(s);     

2 个答案:

答案 0 :(得分:21)

android.text.Layout包含此信息等。使用textView.getLayout().getLineCount()获取行数。

警惕getLayout()如果在布局过程完成之前调用null,可能会返回getLayout()。在onGlobalLayout()onPreDraw() ViewTreeObserver之后致电textView.getViewTreeObserver().addOnPreDrawListener(() -> { final int lineCount = textView.getLayout().getLineCount(); }); 。 E.g。

{{1}}

如果您只想要可见的行数,您应该使用下面答案中提到的方法:

Is there a way of retrieving a TextView's visible line count or range?

答案 1 :(得分:-1)

尝试这样的事情:

        <EditText
            android:id="@+id/edt_obs"
            android:layout_width="0dip"
            android:layout_weight="75"
            android:layout_height="wrap_content"
            android:layout_marginBottom="2dip"
            android:inputType="textCapCharacters|textMultiLine"
            android:scrollHorizontally="false" 
            android:gravity="top|left"
            android:lines="2" 
            android:singleLine="false"
            android:background="@android:drawable/edit_text"
            android:textColor="@color/Black"
            android:textCursorDrawable="@color/Black"
        />

            android:lines="2" 

我的EditText获取2行的空格,之后该字段获得滚动。记得使用

            android:singleLine="false"

我没有使用TextView进行测试,但我认为它会起作用。