сбросить текстовую прокрутку вверх - PullRequest
9 голосов
/ 14 января 2011

Хорошо, я прошу прощения за то, насколько небрежным является этот код, но я все еще не могу понять, как правильно разместить тег кода здесь.Поэтому я делаю приложение для Android (Java) и у меня есть текстовое поле с прокруткой.Если пользователь прокручивает длинную строку вниз и остается в конце, когда щелкает следующую строку, и если она короткая, он будет прокручиваться и вниз по этому элементу, даже если это может быть строка из 1 строки (и не прокручиваемая).Мне было интересно, есть ли способ, как я могу вызвать что-то прямо после txtLvlInfo.setText, чтобы сбросить значение x-scroll в 0 или что-то еще, поэтому оно всегда сбрасывается в верхнюю часть содержимого, длинного или короткого.Спасибо за любую помощь в этом и, пожалуйста, дайте мне знать, если мне нужно уточнить больше.

TextView txtLvlInfo = (TextView) findViewById(R.id.txtLevelInfo);
txtLvlInfo.setMovementMethod(new ScrollingMovementMethod());  

switch (v.getId()){
    case R.id.row1:
    txtLvlInfo.setText("1: My text view is only two lines max and so I set it to scroll, if the user clicks row2 to load that text while having me scrolled down they have to click and pull to drag back down to the top of text view 2 row.");
    break;
    case R.id.row2:
    txtLvlInfo.setText("I only fill line 1 of the two.");
    break;
 }

_

<TextView    
    android:textColor="#052027"  
    android:text=""   
    android:id="@+id/txtLevelInfo"  
    android:scrollbars="vertical"  
    android:layout_alignParentLeft="true"  
    android:layout_width="fill_parent"   
    android:layout_height="fill_parent"  
    android:layout_toRightOf="@+id/minimizeBtn"  
    android:layout_marginRight="38dip">  
</TextView>

Ответы [ 2 ]

22 голосов
/ 14 января 2011

Совет по вводу кода, просто вставьте код в окно, выберите его и нажмите Ctrl (Cmd) + K. Это сделает все отступы на 4 пробела, раскрасит и отформатирует ваш код.

Что касается вашего вопроса, где находится этот оператор switch?

TextView имеет метод, унаследованный от View, который вы можете использовать, который называется scrollTo(int, int) и просто установлен на 0, 0, но я немного запутался в том, что именно вы делаете. Каковы родительские макеты этих TextViews? Вы могли бы просто обернуть первый TextView в ScrollView вместо того, чтобы делать setMovementMethod() (с которым я лично не знаком).

1 голос
/ 27 ноября 2014

Вы можете поместить текстовое представление в ScrollView в макете XML, а затем сбросить прокрутку до верхней позиции с помощью следующего кода:

 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) ((ScrollView) findViewById(R.id.myscrollView)).smoothScrollTo(0, 0);
...