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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Севак
любитель покушать
 Аватар для Севак
679 / 630 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
11.08.2014, 00:37     Как задать отступы между определенными строками в ListView #1
Здравствуйте! Необходимо реализовать кастомный список такого вида (см. скрин). Не могу разобраться как сделать лучше, как видно из скрина, есть строка со временем и строка с описанием пары, которая проходит в это время, т.к. в одно и то же время может быть несколько пар, получаем ситуацию на скрине
Погуглив, понял, что в 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  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.08.2014, 00:37     Как задать отступы между определенными строками в ListView
Посмотрите здесь:

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? Android
Android ListView. После добавления кнопки перестал быть доступен сам ListView
Копирование данных из 1 listView во 2 listView Android
Android Как задать черный цвет текста для ListView?
ListView. Задать высотку Item-а Android
Android Как присвоить обработчик ListView?
Android Задать позицию ListView в ViewPager
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
521 / 491 / 110
Регистрация: 12.03.2014
Сообщений: 1,641
Завершенные тесты: 1
11.08.2014, 07:45     Как задать отступы между определенными строками в ListView #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я бы сделал кастомную вьюшку, в котрой сверху было бы время, а дальше пары, сколько угодно. А потом уже эти вьюшки в обычный scrollView. Отступы сделать - margin_bottom на верхний layout кастомной вьюшки.
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,064
11.08.2014, 08:22     Как задать отступы между определенными строками в ListView #3
А почему бы не использовать ExpandableListView?
Севак
любитель покушать
 Аватар для Севак
679 / 630 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
11.08.2014, 18:00  [ТС]     Как задать отступы между определенными строками в ListView #4
тоже думал насчет этого! спасибо! на данный момент выглядит так (см. скрин)
думаю, если переделать под scrollview, то будет самое то!
Миниатюры
Как задать отступы между определенными строками в ListView  
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.08.2014, 06:19     Как задать отступы между определенными строками в ListView #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>
эта штука представляет собой обычную линию которая и будет выполнять роль нужного вам разделителя
Севак
любитель покушать
 Аватар для Севак
679 / 630 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:00  [ТС]     Как задать отступы между определенными строками в ListView #6
KillAndEat, спасибо за совет! но, на самом деле, expandablelistview мне немного не подходит, т.к. я не планирую по клику на время скрывать/показывать пары, в этом же вся суть этого вью, чтобы можно было организовать древовидную структуру?
Севак
любитель покушать
 Аватар для Севак
679 / 630 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:03  [ТС]     Как задать отступы между определенными строками в ListView #7
на данный момент остановился на таком варианте списка, который меня вполне устраивает! осталось только немного доделать остальные виджеты
Миниатюры
Как задать отступы между определенными строками в ListView  
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
12.08.2014, 22:00     Как задать отступы между определенными строками в ListView #8
Севак, ExpandableListView имеет методы которые позволяют открыть группы и запретить их сворачивание и разворачивание. Но вам виднее, как удобней)
Spelcrawler
521 / 491 / 110
Регистрация: 12.03.2014
Сообщений: 1,641
Завершенные тесты: 1
12.08.2014, 22:01     Как задать отступы между определенными строками в ListView #9
А чем плох такой "велосипед"? Мне вот удобнее самому все сделать) Есть какая то разница в производительности или еще в чем?
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
13.08.2014, 00:48     Как задать отступы между определенными строками в ListView #10
Spelcrawler, не знаю не проверял) но мне всегда казалось что армия программистов компании добра напишет более быстрый компонент, чем среднестатистический разраб)
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
13.08.2014, 10:47     Как задать отступы между определенными строками в ListView #11
ExpandableListView не очень удобен. Лучше использовать обычный ListView, в котором переопределить listview_item.
Севак
любитель покушать
 Аватар для Севак
679 / 630 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
14.08.2014, 17:44  [ТС]     Как задать отступы между определенными строками в ListView #12
KillAndEat, в подробности не вдавался, но на данный момент оставлю как есть, в любом случае спасибо за совет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.08.2014, 00:54     Как задать отступы между определенными строками в ListView
Еще ссылки по теме:

Как перевернуть ListView? Android
Как убрать прокрутку ListView Android
Передача данных между ListView Android
Данные из SQlite в ListView, обработка события ListView Android
Android Как правильно сделать такие отступы

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

Или воспользуйтесь поиском по форуму:
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
15.08.2014, 00:54     Как задать отступы между определенными строками в ListView #13
Севак, отступы между определёнными строка, наверное, можно сделать так. Добавляете в listview_item какой-нибудь TextView, делаете у него определённую высоту в программе (можно и вообще убирать). Таким образом можно делать любые отступы, хоть сверху, хоть слева.
Yandex
Объявления
15.08.2014, 00:54     Как задать отступы между определенными строками в ListView
Ответ Создать тему
Опции темы

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