Intereting Posts
Получить color-int из цветового ресурса Как предоставить макетные данные при тестировании с помощью Espresso Получить версию ОС Android, подключенной через adb Android Spinner.setSelection () не работает Отладка проекта библиотеки Android с исходным кодом Java Java.lang.ClassCastException: android.widget.TextView. Почему я получаю это? Надежное обнаружение поддержки PDF на устройстве Android Android: как программный доступ к серийному номеру устройства, указанному в AVD-менеджере (API версии 8) BLE на Nexus 7 (ME370T) с Android 4.4.2 Несколько приложений с общей базой кода Как установить размер предварительного просмотра камеры в квадрат в квадрате SurfaceView (например, Instagram) Вы можете запустить собственное приложение для камеры из веб-приложения Html 5? Несколько входных параметров для метода execute () для AsyncTask Ошибка раздувания класса android.webkit.WebView происходит спорадически в производстве Почему моя служба не работает в Android? (Я просто хочу, чтобы что-то регистрировалось каждые 5 секунд)

Android ListView: обнаружение, если данные ListView подходят на экране без прокрутки

Возможный дубликат:
Android: using notifyDataSetChanged и getLastVisiblePosition – когда списокView фактически обновлен?

У меня есть простой ListView с несколькими записями. В зависимости от размера и ориентации устройства ListView должен прокручиваться или нет.

У меня также есть изображение на экране, что на самом деле не обязательно. Я хотел бы удалить изображение, если для ListView недостаточно места для прокрутки.

Когда я заполняю свой ListView в onCreate активности, getLastVisiblePosition () еще не действителен, он возвращает -1. Таким образом, я не могу сравнить последний видимый элемент со списком.

Int lastVisiblePos = listView.getLastVisiblePosition (); // возвращает -1

(Если я нажму кнопку позже, чтобы перепроверять, значение будет правильным.)

Использование onScrollingListener слишком поздно, так как изображение не должно отображаться в первую очередь.

Я развиваюсь на уровне API 10.

Какие-либо предложения?

Solutions Collecting From Web of "Android ListView: обнаружение, если данные ListView подходят на экране без прокрутки"

Сравните getLastVisiblePosition() с getCount() в Runnable, чтобы увидеть, подходит ли весь ListView на экране, как только он был нарисован. Вы также должны проверить, подходит ли последняя видимая строка целиком на экране.

Создайте Runnable:

 ListView listView; Runnable fitsOnScreen = new Runnable() { @Override public void run() { int last = listView.getLastVisiblePosition(); if(last == listView.getCount() - 1 && listView.getChildAt(last).getBottom() <= listView.getHeight()) { // It fits! } else { // It doesn't fit... } } }; 

В onCreate() очередь Runnable в обработчике ListView:

 listView.post(fitsOnScreen); 

Почему вы ищете проблемы? Вместо вашей идеи вы можете использовать 3 макета:

  1. Виджеты при необходимости – заголовок
  2. ListView – основной макет
  3. ImageView или другие виджеты – нижний колонтитул

 ListView lv = (ListView) findViewById(R.id.listView); View header = getLayoutInflater().inflate(R.layout.header_layout, null); View footer = getLayoutInflater().inflate(R.layout.foorer_layout, null); lv.addHeaderView(headerComment); lv.addFooterView(footerComment);