我正在写一个计算器,它有一个textview和许多按钮。如果按某个按钮,textview将在字符串末尾添加一个新字符。并自动向正确的方向滚动到此字符。它有效,但是旧的角色(左边)正在切割,如果我向右滚动,我会看到一个空的空间。
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="right"
android:gravity="center_vertical|left"
android:maxLines="1"
android:padding="10dp"
android:singleLine="true"
android:text=""
android:textSize="50sp" />
</HorizontalScrollView>
看看这个。我输入123456789123456789.1到7之间的数字不可见。正确位置的空白区域正好适用于7个数字。
我读了很多答案,但这一切对我都不起作用。
答案 0 :(得分:1)
我不知道为什么会发生这种情况,但我可以建议你避免它。从layout_gravity
移除TextView
并将android:scrollbars="none"
添加到HorizontalScrollView
:
<HorizontalScrollView
android:id="@+id/scrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="center_vertical|left"
android:maxLines="1"
android:padding="10dp"
android:singleLine="true"
android:text=""
android:textSize="50sp" />
</HorizontalScrollView>
然后在代码中,当您修改TextView
上的文字时,请添加以下代码,将HorizontalScrollView
“移动”到正确的位置:
mHorizontalScroll.post(new Runnable() {
@Override
public void run() {
mHorizontalScroll.scrollTo(mScroll.getWidth(), 0);
}
});