Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313

Как задать отступы между определенными строками в ListView

11.08.2014, 00:37. Показов 3804. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Необходимо реализовать кастомный список такого вида (см. скрин). Не могу разобраться как сделать лучше, как видно из скрина, есть строка со временем и строка с описанием пары, которая проходит в это время, т.к. в одно и то же время может быть несколько пар, получаем ситуацию на скрине
Погуглив, понял, что в ListView можно отображать различные виды строк в зависимости от контента (в нашем случае время или описание пары), а именно с помощью метода getItemViewType

Остается лишь решить вопрос того, как задать отступы между ОПРЕДЕЛЕННЫМИ строками в ListView, между всеми строка как задавать я знаю
Буду рад, если укажете направление, в котором нужно копать!

Прикладываю xml c описание кастомной строки:
Кликните здесь для просмотра всего текста
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?xml version="1.0" encoding="utf-8"?>
 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:layout_marginTop="5dp"
    android:layout_marginBottom="5dp"
    android:baselineAligned="false"
    android:clickable="false"
    android:weightSum="1">
 
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:text="08:20 - 09:50"
        android:id="@+id/timeTextView"
        android:gravity="center"
        android:textSize="18sp" />
 
    <View
        android:layout_width="match_parent"
        android:layout_height="1px"
        android:background="@color/gray"/>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <View
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:id="@+id/lectureTypeView"
            android:background="@color/green"/>
 
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
 
            <TextView
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:textColor="@android:color/black"
                android:text="Информатика и программирование"
                android:id="@+id/subjectTextView"
                android:gravity="center|left"
                android:layout_marginLeft="10dp"
                android:textSize="15sp" />
 
            <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">
 
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:textColor="@android:color/black"
                    android:text="12 корпус, ауд.312"
                    android:id="@+id/locationTextView"
                    android:gravity="center|left"
                    android:layout_marginLeft="10dp"
                    android:layout_weight="1" />
 
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:textColor="@android:color/black"
                    android:text="Лекция"
                    android:id="@+id/subjectTypeTextView"
                    android:gravity="center|right"
                    android:layout_marginRight="15dp" />
            </LinearLayout>
        </LinearLayout>
 
    </LinearLayout>
</LinearLayout>
Миниатюры
Как задать отступы между определенными строками в ListView  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2014, 00:37
Ответы с готовыми решениями:

Как вытащить из строки подстроки находящиеся между определенными строками
Имеется строка типа String st = &quot;&lt;%-- Шаблон --%&gt; Шаблон &lt;%-- Титул --%&gt; Титул &lt;%-- Текстовый блок --%&gt; Текст&quot;; ...

Отступы между строками таблицы
Проблема в следующем: Есть задание стилей в css: /*Задание стиля для верхней части страницы*/ .verh {width:1215px; ...

Отступы между строками таблицы
есть таблица &lt;table style=&quot;padding:0;&quot; border=&quot;0&quot; cellspacing=&quot;0&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style=&quot;width: 125px; height:...

12
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
11.08.2014, 07:45
Лучший ответ Сообщение было отмечено Севак как решение

Решение

Я бы сделал кастомную вьюшку, в котрой сверху было бы время, а дальше пары, сколько угодно. А потом уже эти вьюшки в обычный scrollView. Отступы сделать - margin_bottom на верхний layout кастомной вьюшки.
2
914 / 562 / 88
Регистрация: 13.02.2014
Сообщений: 2,082
11.08.2014, 08:22
А почему бы не использовать ExpandableListView?
1
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
11.08.2014, 18:00  [ТС]
тоже думал насчет этого! спасибо! на данный момент выглядит так (см. скрин)
думаю, если переделать под scrollview, то будет самое то!
Миниатюры
Как задать отступы между определенными строками в ListView  
0
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.08.2014, 06:19
Spelcrawler, зачем изобретать велосипед если если то что топикстартер показал на картинке это банальный ExpandableListView (как было сказано выше). Чтоб разделить ячейки в обычном личте используются методыsetDivider() и setDividerHeight(). Не знаю есть ли такие для ExpandableListView если таких нет то в разметку ячейки выпадающего списка достаточно впихнуть это:

XML
1
2
3
4
5
6
7
<View
        android:layout_width="match_parent"
        android:layout_height="толщина"
        android:background="#808080"
        android:layout_below="тут айдишник элемента под которым нужно эту линию запихнуть"
        android:layout_centerHorizontal="true"
        android:id="@+id/view1"></View>
эта штука представляет собой обычную линию которая и будет выполнять роль нужного вам разделителя
2
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:00  [ТС]
KillAndEat, спасибо за совет! но, на самом деле, expandablelistview мне немного не подходит, т.к. я не планирую по клику на время скрывать/показывать пары, в этом же вся суть этого вью, чтобы можно было организовать древовидную структуру?
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:03  [ТС]
на данный момент остановился на таком варианте списка, который меня вполне устраивает! осталось только немного доделать остальные виджеты
Миниатюры
Как задать отступы между определенными строками в ListView  
0
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.08.2014, 22:00
Севак, ExpandableListView имеет методы которые позволяют открыть группы и запретить их сворачивание и разворачивание. Но вам виднее, как удобней)
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
12.08.2014, 22:01
А чем плох такой "велосипед"? Мне вот удобнее самому все сделать) Есть какая то разница в производительности или еще в чем?
0
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.08.2014, 00:48
Spelcrawler, не знаю не проверял) но мне всегда казалось что армия программистов компании добра напишет более быстрый компонент, чем среднестатистический разраб)
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
13.08.2014, 10:47
ExpandableListView не очень удобен. Лучше использовать обычный ListView, в котором переопределить listview_item.
0
любитель покушать
 Аватар для Севак
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
14.08.2014, 17:44  [ТС]
KillAndEat, в подробности не вдавался, но на данный момент оставлю как есть, в любом случае спасибо за совет
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
15.08.2014, 00:54
Севак, отступы между определёнными строка, наверное, можно сделать так. Добавляете в listview_item какой-нибудь TextView, делаете у него определённую высоту в программе (можно и вообще убирать). Таким образом можно делать любые отступы, хоть сверху, хоть слева.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.08.2014, 00:54
Помогаю со студенческими работами здесь

RichEdit уменьшить отступы между строками
Здравствуйте!!! Я вывожу в RE шахматную доску, и т.к. отступ между строками больше чем между буквами, то доска вытягивается по высоте....

Убрать отступы между строками календаря
Добрый день форумчане! Написал простенький календарь, но при его отрисовке появляются отступы между строками. Мучаюсь второй день и...

Отступы между элементами в ListView в режиме VsSmallIcons
Привет всем. В делфи не новичок, решил написать утилиту (что то вроде WPI), но столкнулся с проблемой в стандартном ListView-е: при...

Задать выбор любых символов между двумя определенными
Нужно выбрать из строки текст произвольной длины между двумя определенными метками что-то типа такого Data_ =...

Задать количество пробелов между строками
Здравствуйте, форумчане! Возник такой вопрос: как можно численно задать к-во пробелов между строками (неважно какими, будь то текст, либо...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru