0

私は電卓を書いて​​います、それは1つのテキストビューと多くのボタンを持っています。いくつかのボタンを押すと、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つの数字のためのものです。

スクロールバーの場合、左の使用可能な位置です

スクロールバーが使用可能な正しい位置です

私はたくさんの答えを読みましたが、それはすべて私にはうまくいきません。

4

1 に答える 1

1

正確な理由はわかりませんが、回避する方法をお勧めします。から を削除しlayout_gravityTextViewに追加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);
    }

});
于 2012-11-12T18:38:46.513 に答える