С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Севак
любитель покушать
682 / 633 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
#1

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

11.08.2014, 00:37. Просмотров 1816. Ответов 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 (Программирование Android):

Как задать черный цвет текста для ListView? - Программирование Android
Добрый день! Пытаюсь разобраться в этом исходнике https://github.com/nexes/Android-File-Manager Возник вопрос, как сделать текст на...

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

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

ListView. Задать высотку Item-а - Программирование Android
Посмотрите этот пример(очень простой) - http://freehabr.ru/blog/android/2022.html Как там изменить размер элементов - они все должны быть...

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

Отступы между строками таблицы - HTML, CSS
есть таблица &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: 125px;&quot;&gt; ...

12
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
11.08.2014, 07:45 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Я бы сделал кастомную вьюшку, в котрой сверху было бы время, а дальше пары, сколько угодно. А потом уже эти вьюшки в обычный scrollView. Отступы сделать - margin_bottom на верхний layout кастомной вьюшки.
2
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
11.08.2014, 08:22 #3
А почему бы не использовать ExpandableListView?
1
Севак
любитель покушать
682 / 633 / 106
Регистрация: 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 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
12.08.2014, 18:00  [ТС] #6
KillAndEat, спасибо за совет! но, на самом деле, expandablelistview мне немного не подходит, т.к. я не планирую по клику на время скрывать/показывать пары, в этом же вся суть этого вью, чтобы можно было организовать древовидную структуру?
0
Севак
любитель покушать
682 / 633 / 106
Регистрация: 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
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 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,734
13.08.2014, 10:47 #11
ExpandableListView не очень удобен. Лучше использовать обычный ListView, в котором переопределить listview_item.
0
Севак
любитель покушать
682 / 633 / 106
Регистрация: 25.09.2011
Сообщений: 1,313
14.08.2014, 17:44  [ТС] #12
KillAndEat, в подробности не вдавался, но на данный момент оставлю как есть, в любом случае спасибо за совет
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,734
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
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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