1

Scroller を設定して、一種の垂直スクロール TextView を実装しようとしています。次のコードは、Android 2.3 を実行しているデバイスでは機能しますが、Android レベル 15 を実行しているデバイスでは機能しません。理由はありますか?

Private TextView tenthsTxt;
Private Scroller tenthsScroller;
....

tenthsTxt = (TextView)findViewById(R.id.tenths);
LinearInterpolator scrollerInterpolator = new LinearInterpolator();
tenthsScroller = new Scroller(this, scrollerInterpolator);
tenthsTxt.setScroller(tenthsScroller);
tenthsScroller.startScroll(0,0,0, 59);
tenthsTxt.invalidate();

....

TextView の xml は次のようになります。

    <TextView 
    android:id="@+id/tenths"
    android:background="@drawable/tenths_digit_holder"
    android:text="0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n0"
    android:textSize="25dp"
    android:gravity="center"
    android:paddingTop="5dp"
    android:paddingBottom= "5dp"        
    android:layout_width = "30dp"
    android:textStyle="normal"
    android:layout_height="43dp"                
    android:textColor="#ffff0000" />

Android 2.3 では、TextView は正しい量だけ垂直方向にスクロールします。4.03 を実行している Android デバイスでは、TextView はまったくスクロールしません。確かに、デバイスの pixelDensity にスケーリングされた y 変位も使用されました。結果は同じで、Android 4.03 デバイスではスクロールの動きは観察されませんでした。

4

3 に答える 3

0

プログラミングでもできる

    txtView.setMovementMethod(new  ScrollingMovementMethod());
于 2013-03-23T11:29:39.000 に答える
0
<ScrollView 
    android:id="@+id/scrollView"
    android:layout_width="300dp"
    android:layout_height="100dp"
    android:scrollHorizontally="false"
    android:ems="10">
    <TextView 
            android:id="@+id/textView"
        android:layout_width="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium" 
        android:layout_height="match_parent"/>
</ScrollView>

scrollView のサイズは固定されており、textView の高さは親に合わせられます。

于 2013-03-23T11:22:50.853 に答える