2013-03-23 3 views
1

Я пытаюсь реализовать своего рода вертикальную прокрутку TextView, установив на нее Скроллер. Следующий код работает на моем устройстве, которое работает под управлением Android 2.3, но оно не работает на устройствах под управлением Android уровня 15. Любые идеи, почему?Настройка Scroller на 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(); 

.... 

XML-для TextView выглядит следующим образом:

<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 прокручивается по вертикали правильное количество. На Android-устройствах, работающих под управлением 4.03, TextView не прокручивается вообще. Разумеется, также было использовано значение y-смещения, масштабируемое по отношению к пикселю. Плотность устройств также использовалась - результаты были такими же, без движения прокрутки, наблюдаемого на устройствах Android 4.03.

+0

Я не 100% уверен, что вы пытаетесь сделать, вы хотите, чтобы этот текст автопрокрутку вверх/вниз, как кредиты в кино? –

+0

Спасибо, что ответили. Это простой тест, который я использовал для оценки способности TextView вертикально прокручивать его содержимое на 59 пикселей. Этот тест вызывается в функции onCreate(). Приложение использует tenthsScroller.startScroll (0,0,0, y) позже, где y - вычисленное значение. В тесте и вызове tenthsScroler.startScroll позже в приложении не отображается прокрутка на Android 4.03, но отлично работает на Android 2.3. И в ответ на ваш вопрос, да, он должен прокручиваться, как кредит в фильме, но свиток должен быть мгновенным, так как я не устанавливал продолжительность. – user1608385

ответ

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

Когда этот ответ поможет вам, upvote/accpet ответ .. –

0

Вы также можете сделать это программирует

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

** Я попытался добавить следующее: ** 'tenthsTxt.setMovementMethod (новый ScrollingMovementMethod());' К сожалению, до сих пор прокрутка не работает Galaxy S3 работает под управлением Android 4.03, но работает на устройстве под управлением Android 2.3 – user1608385

0

Я знаю, что вы хотите. Вот хороший исходный код пример того, что вам нужно:

Он содержит такие вещи, как:

Вертикальный Автопрокрутка Ввод текста ListView ListView Слушателей 15+ команды (очень легко добавить больше) Basic User Interface Поддельные файловой системы Кнопка Слушателей и Подробнее ... Скачать исходный код здесь:

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

Если вы хотите увидеть, как это выглядит, посмотрите здесь:

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

Смежные вопросы