Форум программистов, компьютерный форум CyberForum.ru

Список отображается не полностью - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Не отображается информация в ListView http://www.cyberforum.ru/android-dev/thread1431581.html
В общем-то вопрос интересный появился. Написал я один адаптер вложил его во второй. Все запустил, работает отлично, ошибок никаких не выдает. НО информация тупо не отображается. э в чем может быть проблема?
Android Как остановить по отдельности каждую мелодию в MediaPlayer? Все привет,такое вопрос у меня , есть 3 кнопки ToggleButton и при нажатие на них воспроизводится все 3 мелодии в одном MediaPlayer ,как можно остановить по отдельности каждую мелодию,а не все при выключение кнопки ,если я вызываю метод mediaPlayer.stop(); ,то останавливаются все или придется создавать для каждой мелодии отельный MediaPlayer? int sounds ={ R.raw.sound ,R.raw.sound2 ,R.raw.sound3... http://www.cyberforum.ru/android-dev/thread1431408.html
Android Свой Adapter в свой Adapter
Здравствуйте! В общем вопрос такой: у меня должно получить список в списке. Как то так: 1 10$ картошка сникерс чупа-чупс 2 20$ чупа-чупс твикс 3 30$ твикс картошка
Android Изображение в RSS ленте
Подскажите пожалуйста,правильно ли я получаю переменную <img>site.ru/img.png</img> из моей RSS ленты? package app.kray.anddev; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import android.sax.Element; import android.sax.EndElementListener;
Android Перестали отображаться кнопки http://www.cyberforum.ru/android-dev/thread1431283.html
в общем такое дело, когда установил только андроид студио, то при запуске эмулятора кнопки в нём отображались нормально на разных версиях апи, хоть ничего и не делали. а недавно почему то перестали отображаться. теперь почему то имея хоть такой проект с одной кнопкой при запуске эмулятора апи 10 кнопка пропадает и остается только текст , а при запуске эмулятора с апи 14 уже нормально...
Android Как получить из списка адресов только город? Здравствуйте! Есть код, который выдает список адресов. Например, ул. Бульвар Гагарина, 6 Пермь Пермский край Россия А как получить только название города? Вот сам код: подробнее

Показать сообщение отдельно
korep
51 / 44 / 9
Регистрация: 06.01.2013
Сообщений: 590
28.04.2015, 00:01  [ТС]     Список отображается не полностью
xml

Добавлено через 3 часа 32 минуты
В общем проблема решена.
На самом деле все нормально передается и почти хорошо работает.
В документации есть пункт о том, что не желательно использовать List`ы в List`ах (если кратко).
Т.е. ListView в ListView или ListView в ScrollView и т.д.
Это связано с тем, что все эти списки листающиеся. И возникает проблема их отображения. В данном случае единственным решением является изменение высоты внутреннего List`а после добавления новых записей.
Это можно сделать при помощи функции которую я позаимствовал здесь
Также ее можно теперь взять и здесь
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null)
        return;
 
    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
    int totalHeight = 0;
    View view = null;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        view = listAdapter.getView(i, view, listView);
        if (i == 0)
            view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, LayoutParams.WRAP_CONTENT));
 
        view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
        totalHeight += view.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();
}


Пояснение:
Во внутреннем адаптере создается listView и к нему применяется указанный выше метод.
Однако в результате мы получим, что к нашему внешнему listView будет добавляться каждый раз еще по одному списку.
для того, чтобы это избежать можно сделать вот так
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
if(view.findViewById(R.id.admin_ticket_good_listview) == null) {
            ListView listView = new ListView(context);
            listView.setId(R.id.admin_ticket_good_listview);
            listView.setAdapter(ticketPositionAdapter);
            ((LinearLayout) view.findViewById(R.id.admin_ticket_good_list)).addView(listView);
            ticketPositionAdapter.notifyDataSetChanged();
            setListViewHeightBasedOnChildren(listView);
        }

где R.id.admin_ticket_good_list - id LinearLayout`a в item`e внешнего listview
Это все конечно костыли, но без них в данном случае никак, если кто подскажет более простой метод, буду рад услышать.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru