Java 水平滚动并聚焦文本视图中的最后一个数字
我正在做一个计算器应用程序 我有一个文本视图,用户在其中写入数字以详细说明 文本视图位于水平滚动视图内。水平滚动视图位于垂直线性布局内。文本视图是单行的,当用户写一个长的数字时,数字就会从屏幕上显示出来 TextView应该跟随用户添加的最后一个数字,这样他就可以在不滚动屏幕的情况下查看最后添加的数字。我不想要一个每秒重复滚动的自动滚动功能,我只想关注最后添加的数字 这是文本视图Java 水平滚动并聚焦文本视图中的最后一个数字,java,android,android-layout,android-studio,textview,Java,Android,Android Layout,Android Studio,Textview,我正在做一个计算器应用程序 我有一个文本视图,用户在其中写入数字以详细说明 文本视图位于水平滚动视图内。水平滚动视图位于垂直线性布局内。文本视图是单行的,当用户写一个长的数字时,数字就会从屏幕上显示出来 TextView应该跟随用户添加的最后一个数字,这样他就可以在不滚动屏幕的情况下查看最后添加的数字。我不想要一个每秒重复滚动的自动滚动功能,我只想关注最后添加的数字 这是文本视图 <HorizontalScrollView android:layout_width=
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/numberDisplay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="16dp"
android:hint="0"
android:scrollHorizontally="true"
android:maxLines="1"
android:layout_gravity="right"
android:textSize="70sp" />
</HorizontalScrollView>
试试这个:
TextView textView;
HorizontalScrollView scrollView;
onCreate()
中初始化它们:
scrollView.scrollTo(textView.getRight(), textView.getTop());
textView.setText(…)
,然后立即调用scrollView.scrollTo(…)
,它将无法工作,因为文本视图大小不会立即更新。您应该像这样更新scoll位置:
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(textView.getRight(), textView.getTop());
}
});
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.scrollTo(textView.getRight(), textView.getTop());
}
});