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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
#1

Интересный ЛистВью - Программирование Android

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

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

Массивы и ЛистВью - Программирование Android
Люди добрые подскажите, плиз, как избавиться от ошибки. Имеется файл, в котором в следующем виде записаны данные: Витя&Коля&Саша&Паша ...

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

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

Интересный факт о Application и Service :remote - Программирование Android
Значит берём создаём тестовый примерчик: Активити Сервис Биндимся из активити к сервису и через месенджер шлём сообщения сервису...

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

заполнить листвью - C#
есть такой ListView (см. вложение) необходимо из бд (MySQL) заполнить Фамилия (columnHeader1), Имя (columnHeader2), Отчество...

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

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

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

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

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

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

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

А может элементом списка сделать, например, массив из 10 элементов, и в адаптере эти 10 элементов отображать?...
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
20.07.2012, 01:27 #12
Цитата Сообщение от kvaka Посмотреть сообщение
Что значит:
задать высоту ячейки поделив высоту листа на 10.
Мы ведь когда размещаем список интерфейс еще не отрисован и размерами пространства мы оперировать не можем.
А может элементом списка сделать, например, массив из 10 элементов, и в адаптере эти 10 элементов отображать?...
Прочитай мой пост полностью.
0
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
25.07.2012, 15:10  [ТС] #13
Как из parent взять высоту листа? Это же в onCreate все задается. Список еще не на экране, размеры непонятны...
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.07.2012, 18:54 #14
Цитата Сообщение от V0v1k Посмотреть сообщение
в адаптере в методе getView
.....
0
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2012, 12:21
Привет! Вот еще темы с ответами:

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

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

Шрифты, табконтролы, листвью и вывод текста - C++ WinAPI
Я создаю окно, в окне табконтрол, внутри каждого таба которого листвью. При переключении, отслеживая TCN_SELCHANGE и TCN_SELCHANGING,...

интересный пример - Математический анализ
помогите пожалуйста решить матан. постройте график функции y=||2x^2+3|+|x-2|+|3x-5||


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.07.2012, 12:21
Ответ Создать тему
Опции темы

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