Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Севак
любитель покушать
682 / 633 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
#1

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

11.08.2014, 00:37. Просмотров 1996. Ответов 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>
0
Миниатюры
Как задать отступы между определенными строками в ListView  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2014, 00:37
Ответы с готовыми решениями:

Как задать черный цвет текста для ListView?
Добрый день! Пытаюсь разобраться в этом исходнике...

Убрать отступы между ImageButton
Нужно создать плитку из картинок, при нажатии которых выполняется определенный...

Задать позицию ListView в ViewPager
Добрый вечер! Столкнулся с проблемой обновления ListView, после нажатия на...

ListView. Задать высотку Item-а
Посмотрите этот пример(очень простой) -...

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

12
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
11.08.2014, 07:45 #2
Лучший ответ Сообщение было отмечено Севак как решение

Решение

Я бы сделал кастомную вьюшку, в котрой сверху было бы время, а дальше пары, сколько угодно. А потом уже эти вьюшки в обычный scrollView. Отступы сделать - margin_bottom на верхний layout кастомной вьюшки.
2
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
11.08.2014, 08:22 #3
А почему бы не использовать ExpandableListView?
1
Севак
любитель покушать
682 / 633 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
11.08.2014, 18:00  [ТС] #4
тоже думал насчет этого! спасибо! на данный момент выглядит так (см. скрин)
думаю, если переделать под scrollview, то будет самое то!
0
Миниатюры
Как задать отступы между определенными строками в ListView  
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.08.2014, 06:19 #5
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
Севак
любитель покушать
682 / 633 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:00  [ТС] #6
KillAndEat, спасибо за совет! но, на самом деле, expandablelistview мне немного не подходит, т.к. я не планирую по клику на время скрывать/показывать пары, в этом же вся суть этого вью, чтобы можно было организовать древовидную структуру?
0
Севак
любитель покушать
682 / 633 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:03  [ТС] #7
на данный момент остановился на таком варианте списка, который меня вполне устраивает! осталось только немного доделать остальные виджеты
0
Миниатюры
Как задать отступы между определенными строками в ListView  
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.08.2014, 22:00 #8
Севак, ExpandableListView имеет методы которые позволяют открыть группы и запретить их сворачивание и разворачивание. Но вам виднее, как удобней)
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
12.08.2014, 22:01 #9
А чем плох такой "велосипед"? Мне вот удобнее самому все сделать) Есть какая то разница в производительности или еще в чем?
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.08.2014, 00:48 #10
Spelcrawler, не знаю не проверял) но мне всегда казалось что армия программистов компании добра напишет более быстрый компонент, чем среднестатистический разраб)
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
13.08.2014, 10:47 #11
ExpandableListView не очень удобен. Лучше использовать обычный ListView, в котором переопределить listview_item.
0
Севак
любитель покушать
682 / 633 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
14.08.2014, 17:44  [ТС] #12
KillAndEat, в подробности не вдавался, но на данный момент оставлю как есть, в любом случае спасибо за совет
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
15.08.2014, 00:54 #13
Севак, отступы между определёнными строка, наверное, можно сделать так. Добавляете в listview_item какой-нибудь TextView, делаете у него определённую высоту в программе (можно и вообще убирать). Таким образом можно делать любые отступы, хоть сверху, хоть слева.
0
15.08.2014, 00:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2014, 00:54

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

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

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


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

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

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