我的 EditText 有时可以有非常大的文本(>1000 行),我希望能够快速到达开始或结束所以我认为快速滚动是解决方案,但是它不适用于 EditText 或 ScrollView,仅适用于列表显示。我发现一些编辑应用程序的 EditText 中确实有快速滚动条。他们是如何做到的呢?在父 ScrollView 上设置
smoothScrollEnabled
不起作用
通过引用this,
您可以使用
ScrollView
并将您的 EditText
放入其中并提及您需要快速/平滑滚动的位置。
scrollview = (ScrollView) findViewById(R.id.scroll_view) ;
scrollview.setSmoothScrollingEnabled ( true );
scrollview.smoothScrollBy (int dx, int dy); //dx,dy.. offset (Relative Position)
scrollview.smoothScrollTo (int x, int y); //scroll to x and y (actual position)
<ScrollView
android:id="@+id/scrollViewEditText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginTop="60dp"
android:layout_marginBottom="60dp"
android:fillViewport="true"
android:scrollbarThumbHorizontal="@null"
android:scrollbarThumbVertical="@null"
android:visibility="visible">
<EditText
android:id="@+id/etBook"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="15dp"
android:background="@null"
android:fastScrollEnabled="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:fontFamily="@font/futurabook"
android:gravity="top"
android:hint="Tap to start writing ...."
android:importantForAutofill="no"
android:inputType="textMultiLine"
android:lineSpacingExtra="0sp"
android:minHeight="48dp"
android:textColor="@color/colorSecondaryVariant"
android:textSize="17sp"
tools:ignore="SpeakableTextPresentCheck" />
</ScrollView>