С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
1

Интересный ЛистВью

19.07.2012, 02:43. Просмотров 1317. Ответов 14
Метки нет (Все метки)

Есть такая задачка. Где-то в интерфейсе расположен ListView из 100 элементов, нужно, чтобы он одновременно отображал не более 10 элементов, причем при слайде по нему, показывал следующие/предыдущие 10.
Вопрос-как это сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2012, 02:43
Ответы с готовыми решениями:

Массивы и ЛистВью
Люди добрые подскажите, плиз, как избавиться от ошибки. Имеется файл, в...

Android MySQL в листвью
Добрый день. Рылся по инету но не нашёл рабочего аналога. Те что скачал (2шт)...

При скролинге листвью, картинки пропадают
День добрый. Использую свой кастом адаптер для листвью(см. приложение). При...

Интересный факт о Application и Service :remote
Значит берём создаём тестовый примерчик: Активити Сервис Биндимся из...

Ищу единомышленников - программистов iOS, Android, Winphone, web и дизайнеров приложений. Интересный проект
Просьба откликнуться желающих поучаствовать в разработке интересного приложения...

14
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
19.07.2012, 11:40 2
Если правильно написан адаптер то LISTVIEW использует ограниченое количество ячеек. Их количество - это количество видимых ячеек + 2-3 с верху и снизу. В чем заключаеться ваш я вопрос я не понял.
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
19.07.2012, 12:43  [ТС] 3
Нет, адаптер содержит полный список элементов, т. е. 100. Высота одной ячейки должна занимать 10-ю часть выделенного для ListView пространства. прокручивание элементов по одному надо запретить, вместо этого при слайде вверх/вниз по списку нужно чтобы он прокручивался на 10 позиций вверх/вниз.
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.07.2012, 12:46 4
и в чем конкретно сложность? давай по порядку.
0
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
19.07.2012, 12:49 5
Цитата Сообщение от kvaka Посмотреть сообщение
Нет, адаптер содержит полный список элементов, т. е. 100

аргументы в студиу или у вас не правильно написанный адаптер

EDIT
может вы путаете количество ячеек в LISTVIEW
и количество элементов в вашем массиве
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
19.07.2012, 14:31  [ТС] 6
Ок, по порядку.
-Как сделать, чтобы только 10 из 100, да или из произвольного количества элементов списка отображались на выделенной области полностью ее заполняя и равномерно распределяя между собой пространство?

Количество элементов массива с количеством элементов списка не путаю, но сейчас оно совпадает.
0
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
19.07.2012, 16:11 7
Цитата Сообщение от kvaka Посмотреть сообщение
Как сделать, чтобы только 10 из 100
задача в принципе не тривиальная
вот впринципе решение http://stackoverflow.com/questions/4373485/android-swipe-on-list
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.07.2012, 16:31 8
что-то не вижу там решений...

можно в адаптере задать высоту ячейки поделив высоту листа на 10. Высота листа вытягивается с parent в методе getView.
0
flashok
87 / 89 / 1
Регистрация: 14.02.2009
Сообщений: 293
19.07.2012, 16:34 9
эм я имел ввиду свайп в 10 ячеек за один раз
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.07.2012, 16:40 10
так он не про свайп в последнем посте спросил)
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
20.07.2012, 00:19  [ТС] 11
Свайп - это прокрутка на 10 позиций по соответствующему жесту?
Если да, то это может и то что надо, но вопрос с делением пространства все равно актуален.

Что значит:
задать высоту ячейки поделив высоту листа на 10.

Мы ведь когда размещаем список интерфейс еще не отрисован и размерами пространства мы оперировать не можем.

А может элементом списка сделать, например, массив из 10 элементов, и в адаптере эти 10 элементов отображать?...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.07.2012, 01:27 12
Цитата Сообщение от kvaka Посмотреть сообщение
Что значит:
задать высоту ячейки поделив высоту листа на 10.
Мы ведь когда размещаем список интерфейс еще не отрисован и размерами пространства мы оперировать не можем.
А может элементом списка сделать, например, массив из 10 элементов, и в адаптере эти 10 элементов отображать?...
Прочитай мой пост полностью.
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
25.07.2012, 15:10  [ТС] 13
Как из parent взять высоту листа? Это же в onCreate все задается. Список еще не на экране, размеры непонятны...
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.07.2012, 18:54 14
Цитата Сообщение от V0v1k Посмотреть сообщение
в адаптере в методе getView
.....
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
26.07.2012, 12:21  [ТС] 15
Вообще я фигню написал в последний раз. ))
Значит, в методе getView вызываю parent.getHeight(). Далее могу получить 10-ю часть этой высоты.
Это все без проблем.

При попытке установить для convertView высоту через setLayoutParams выдает ошибку.
Собственно вызов
Java
1
convertView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
Тоже выдает ошибку.

Далее, адаптер для отображения элементов использует разметку:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:background="@android:color/transparent">
  
        <TextView 
            android:id="@+id/item_name"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
 
            android:layout_alignParentLeft="true"
            android:background="@android:color/transparent"
        />
        
        <CheckBox 
            android:id="@+id/checkbox"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
 
            android:layout_alignParentRight="true"
        />
        
</RelativeLayout>
Исходя из того что корневой элемент в разметке для параметра высоты имеет wrap_content решил установить высоту для вложенных элементов - текстового поля и чекбокса. В итоге TextView принимает нужную высоту - это видно по обрезанным буквам. Чекбокс остается как был. Кстати, было замечено, что если чекбоксу задать большой размер, то отображаться он будет так-же, но выделенное под него место раздуется.
В итоге непонятно как вычесленную нужную высоту назначить отображаемым элементам.((
0
26.07.2012, 12:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2012, 12:21

Сортировка листвью
Привет. Как отсортировать в листвью колонку по алфавиту?

заполнить листвью
есть такой ListView (см. вложение) необходимо из бд (MySQL) заполнить Фамилия...

Чекбоксы в листвью - как положить?
Есть одна проблема... Надо в листвью положить чекбоксы (должно быть 2 колонки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru