Как определить количество строк, видимых в TextView?
как узнать сколько строк отображается в видимой части 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 ответов
android.текст.Макет содержит эту информацию и многое другое. Использовать textView.getLayout().getLineCount()
для получения количества строк.
будьте осторожны, что getLayout()
может возвратить null
если вызывается до завершения процесса компоновки. Звоните getLayout()
после onGlobalLayout()
или onPreDraw()
of ViewTreeObserver
. Е. Г.
textView.getViewTreeObserver().addOnPreDrawListener(() -> {
final int lineCount = textView.getLayout().getLineCount();
});
если вы хотите только видимый счетчик строк, вы, вероятно, должны использовать подход, упомянутый в ответе ниже:
есть ли способ получить видимую строку TextView счет или расстояние?
попробуйте что-то вроде этого:
<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, но я думаю, что это сработает.