2015-04-12 4 views
-1

Я программирую приложение для викторины. У меня есть TextView с вопросом. Высота Textview изменяется в зависимости от вопроса. Под текстом есть список с ответами. Я хочу что-то сделать, если список содержит больше элементов, чем я могу видеть. Итак, если есть новый вопрос, я пишу текст в текстовое окно и заполняю quesitons как элемент в списке. После этого я создаю listView.getLastVisiblePosition(); но всегда -1. Когда я делаю дополнительную кнопку и помещаю mehtode внутри, она возвращает правильный lastVisiblePosition. Итак, я попытался получить высоту всех элементов в списке (и разделителях) и сравнить эту высоту с listview.getHeight. Но высота Listview всегда больше, чем высота элементов. Итак, я попробовал listview.canScrollVertically, но это всегда так.if (высота всех элементов> listview.height) затем ....

Так что я понятия не имею, как я могу проверить, могу ли я видеть все элементы в списке или мне нужно прокручивать.

+0

Просто сравните '(listView.getLastVisiblePosition() - listView.getFirstVisiblePosition())' с общей суммой элементов списка – Rami

+0

Спасибо, но lastVisiblePosition -1. Я не хочу иметь дополнительную кнопку, чтобы проверить это. Если пользователь ответил на вопрос, он должен нажать кнопку, которая проверяет правильность ответа. Если ответ написан, я заменяю текст текстового поля на новый вопрос, загружаю новые ответы в текстовое представление и хочу проверить, отображается ли каждый элемент, или он должен прокручиваться, и в это время он равен -1. Если я не проверю его, сделайте дополнительную кнопку, чтобы проверить его, он дает правильную позицию, но я не хочу дополнительной кнопки. –

ответ

0

Хорошо, у меня есть ответ. Возможно, это не самое лучшее, но оно работает.

Просто сделайте короткий перерыв.

new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      // Compare it here 
     } 
    }, 10); 

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

  • Нет связанных вопросов^_^