2013-03-23 87 views
1

我想通过在其上设置滚动条来实现一种垂直滚动TextView。以下代码适用于运行Android 2.3的设备,但不适用于运行Android 15级设备。任何想法为什么?在TextView上设置滚动条以进行垂直滚动

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设备上没有观察到滚动移动相同。

+0

我不是100%肯定你正在尝试做的,你想这个文本自动滚动向上/向下像在电影中得分? – 2013-03-23 00:10:41

+0

感谢您的回复。这是一个简单的测试,我用它来评估TextView垂直滚动其内容59个像素的能力。这个测试在onCreate()函数中调用。该应用程序稍后使用tenthsScroller.startScroll(0,0,0,y),其中y是一个计算值。测试和稍后在应用程序中对tenthsScroler.startScroll的调用不显示Android 4.03上的任何滚动,但在Android 2.3上正常工作。在回答你的问题时,是的,它应该像电影中的信用一样滚动,但由于我没有设置持续时间,所以滚动应该是瞬间的。 – user1608385 2013-03-23 00:29:18

回答

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的高度对齐到他们的父母。

+0

当这个答案可以帮助你,给予好评/ Accpet头答案.. – 2013-03-27 06:40:25

0

您还可以通过编程

txtView.setMovementMethod(new ScrollingMovementMethod()); 
+0

**我尝试添加以下内容:** 'tenthsTxt.setMovementMethod(新ScrollingMovementMethod());' 不幸的是,滚动仍然无法正常工作的运行Android 4.03的Galaxy S3,但它运行在运行Android 2.3的设备上 – user1608385 2013-03-24 03:52:29

0

做,我知道你想要什么。下面是你需要什么好的源代码例子:

它包含了诸如:

垂直自动滚动 文本输入 的ListView 的ListView听众 15+命令(很方便地添加更多) 基本的用户界面 假文件系统 按钮听众 详细信息... 下载源代码在这里:

http://www.fileswap.com/dl/0L8nU0kSFD/

如果你想看到什么样子看看这里:

https://play.google.com/store/apps/details?id=com.coGame.consoletest&hl=en