如何在 Android 多行 Edittext 中加速平滑滚动?
How to accelerate smooth scrolling in Android multiline Edittext?
这是 xml
(activity_matches.xml
),它在下面的屏幕截图中显示了名为 txaMatches
:
的 EditText
对象中的输出
<EditText
android:id= "@+id/txaMatches"
android:text= ""
android:scrollbars= "vertical"
android:layout_below= "@+id/pattern"
android:textColor= "@color/yellow_foreground"
android:textSize= "@dimen/matches_text"
android:focusable="false"
android:inputType="textMultiLine"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd= "true"
tools:ignore= "LabelFor"
android:typeface="monospace"
android:focusableInTouchMode="false"
android:paddingEnd="@dimen/matches_padding"
android:paddingStart="@dimen/matches_padding"
/>
我希望这个 multiline
EditText
对象的内容能够在用户在其中滑动时平滑地加速滚动。
这是我填写 txaMatches
的方式(使用 doInBackground
)。这是我在Java代码中唯一引用它的地方(当然我也在Java中定义和初始化它):
protected void onProgressUpdate(String... progress)
{
for (int i = 0; i < progress.length; i++)
if(progress[i].length() > 1) MatchesActivity.txaMatches.append("\n" + progress[i]);
else MatchesActivity.showLetter("Reading " + progress[i].charAt(0));
}
在 xml
中进行此更改是否容易?
我应该使用 ListView
吗? EditText
应该在 ListView
内吗?
我是否需要编写一些 Java 代码?
考虑到我提供的代码量很少,我预计不会有太多细节。只是概述要做什么 Google 将是一个好的开始。
非常简单(感谢 Fllo 的 THIRD link)。 (第一个没有帮助;第二个专注于 Java 代码和 ScrollView
class 并且比第三个涉及更多,后者专注于 xml
并且非常适合我情况(只需要将 txaMatches
的类型更改为 TextView
):
新代码开始
<ScrollView
android:layout_alignParentStart="true"
android:layout_alignParentEnd= "true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
除结束标记外的新代码结束
<TextView
android:id= "@+id/txaMatches"
android:scrollbars= "vertical"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
/>
</ScrollView>
这是 xml
(activity_matches.xml
),它在下面的屏幕截图中显示了名为 txaMatches
:
EditText
对象中的输出
<EditText
android:id= "@+id/txaMatches"
android:text= ""
android:scrollbars= "vertical"
android:layout_below= "@+id/pattern"
android:textColor= "@color/yellow_foreground"
android:textSize= "@dimen/matches_text"
android:focusable="false"
android:inputType="textMultiLine"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd= "true"
tools:ignore= "LabelFor"
android:typeface="monospace"
android:focusableInTouchMode="false"
android:paddingEnd="@dimen/matches_padding"
android:paddingStart="@dimen/matches_padding"
/>
我希望这个 multiline
EditText
对象的内容能够在用户在其中滑动时平滑地加速滚动。
这是我填写 txaMatches
的方式(使用 doInBackground
)。这是我在Java代码中唯一引用它的地方(当然我也在Java中定义和初始化它):
protected void onProgressUpdate(String... progress)
{
for (int i = 0; i < progress.length; i++)
if(progress[i].length() > 1) MatchesActivity.txaMatches.append("\n" + progress[i]);
else MatchesActivity.showLetter("Reading " + progress[i].charAt(0));
}
在 xml
中进行此更改是否容易?
我应该使用 ListView
吗? EditText
应该在 ListView
内吗?
我是否需要编写一些 Java 代码?
考虑到我提供的代码量很少,我预计不会有太多细节。只是概述要做什么 Google 将是一个好的开始。
非常简单(感谢 Fllo 的 THIRD link)。 (第一个没有帮助;第二个专注于 Java 代码和 ScrollView
class 并且比第三个涉及更多,后者专注于 xml
并且非常适合我情况(只需要将 txaMatches
的类型更改为 TextView
):
新代码开始
<ScrollView
android:layout_alignParentStart="true"
android:layout_alignParentEnd= "true"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
除结束标记外的新代码结束
<TextView
android:id= "@+id/txaMatches"
android:scrollbars= "vertical"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
/>
</ScrollView>