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);
Android.text.Layout には、この情報などが含まれています。行数を取得するには、textView.getLayout().getLineCount()
を使用します。
レイアウトプロセスが完了する前に呼び出された場合、getLayout()
がnull
を返す可能性があることに注意してください。 ViewTreeObserver
のgetLayout()
またはonGlobalLayout()
の後にonPreDraw()
を呼び出します。例えば。
textView.getViewTreeObserver().addOnPreDrawListener(() -> {
final int lineCount = textView.getLayout().getLineCount();
});
表示される行数だけが必要な場合は、おそらく以下の回答で述べられているアプローチを使用する必要があります。