2016-11-29 2 views
0

У меня есть scrollView, в котором, когда я нахожусь в конце scrollView, при нажатии кнопки в конце мне нужно показать представление ниже этой кнопки. Я делаю это, изменяя видимость этого недавно добавленного вида от GONE до VISIBLE. Он работает, но после нажатия кнопки я не могу видеть недавно добавленное представление. Мне нужно прокрутить вниз по экрану scrollView, чтобы показать это представление. Есть ли способ прокрутить ScrollView к этому недавно добавленному представлению после нажатия кнопки? а также скрыть это представление и вернуться к нормальному состоянию после повторного нажатия этой кнопки.ScrollView не прокручивается до конца при добавлении нового вида android

Заранее благодарен!

+0

Добавьте сюда свой XML-код. так что мы можем попытаться решить проблему. – Ramz

+0

@Ramz Я использовал таймер обратного отсчета для этого, и это сработало для меня, как в моем ответе. –

ответ

0

как вид, что я добавлял в было добавлен с расширением анимации конца, так что я использовал таймер обратного отсчета времени для него следующим образом:

new CountDownTimer(500, 1) { 
     public void onTick(long millisUntilFinished) { 
      myScrollView.scrollTo(0, R.id.bottomView); 
     } 
     public void onFinish() { 
     } 
    }.start(); 

Все это.

1

это альтернатива, которая в значительной степени делает то же самое.

Вместо прокрутки в нижней части экрана смените фокус на вид, расположенный в нижней части экрана.

То есть, замена:

scroll.scrollTo(0, scroll.getBottom()); 

с:

Footer.requestFocus(); 

Убедитесь, что вы указали, что представление, скажем, 'Footer' является фокусирования.

android:focusable="true" 
android:focusableInTouchMode="true" 

или выше не работает попробовать этот

scrollView.post(new Runnable() { 
@Override 
public void run() { 
    scrollView.fullScroll(ScrollView.FOCUS_DOWN); 
} 
}); 
+0

Я пробовал делать это, но ничего не добился. –

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