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

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

Войти
Регистрация
Восстановить пароль
 
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
#1

Кастомизация ListView - Android

15.06.2014, 22:20. Просмотров 754. Ответов 7
Метки нет (Все метки)

http://imglink.ru/pictures/15-06-14/...fbf868d023.jpg

Как реализовать кастомизацию списка, как в офф приложении вконтакте?

В частности интересует нижняя строка. Лайки, комменты и репосты. Как сделать то?

Добавлено через 53 секунды
Ну и как реализовать список плиткой как там?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.06.2014, 11:10     Кастомизация ListView #2
KillAndEat, так просто нарисуйте такой layout. На вскидку это так:

Корневой - Linear.
В нём: 3 линейных. Один хедер, второй-контент, третий-футер. Веса соответственно: 1, 8, 1.

Футер содержит в линеара с весами по 1. Левый содержит кол-во коментов, правый линеар содержит две вьюхи, их веса так же по 1.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
16.06.2014, 11:18  [ТС]     Кастомизация ListView #3
YuraAAA, я понимаю что нужно кастомную разметку сварганить, но вот только как? До вашего сообщения я думал что хедер и футер только в начале и конце всего листа могут быть. Как обработчики для них пишутся? Мне б код посмотреть.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.06.2014, 13:34     Кастомизация ListView #4
KillAndEat,
оч просто
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?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="match_parent">
 
    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_weight="1" android:id="@+id/top"
            android:background="#870006" android:weightSum="2">
        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:layout_weight="0.8">
            <ImageView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/img_avatar" android:background="@drawable/ic_launcher" android:scaleType="fitXY"/>
        </LinearLayout>
        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:layout_weight="0.3">
            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="New Text"
                    android:id="@+id/textView"/>
        </LinearLayout>
        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:layout_weight="0.9">
            <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/img_share" android:background="@drawable/ic_launcher"/>
        </LinearLayout>
    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_weight="0.3" android:id="@+id/body"
            android:background="#ffffff">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Тут подпись к контенту"
                android:id="@+id/textView2" android:textColor="#000000"/>
        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageView" android:layout_gravity="center_vertical"
                android:background="@drawable/ic_launcher"/>
    </LinearLayout>
    <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:layout_weight="1" android:id="@+id/footer"
            android:background="#870700">
        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:layout_weight="1">
            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="New Text"
                    android:id="@+id/textView3"/>
        </LinearLayout>
        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" android:layout_weight="1">
            <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent" android:layout_weight="1">
                <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="New Text"
                        android:id="@+id/textView4"/>
            </LinearLayout>
            <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent" android:layout_weight="1">
                <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="New Text"
                        android:id="@+id/textView5"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.06.2014, 13:36     Кастомизация ListView #5
Вот так выглядит
Миниатюры
Кастомизация ListView  
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
16.06.2014, 13:56  [ТС]     Кастомизация ListView #6
YuraAAA, вот это да...! А такое обилие многообразие тормозить не будет? И вы не в курсе что это за элемент который выделен кружком на скриншоте в первом посте? Похож на экшен бар, но насколько я знаю он кроме строки заголовка нигде не может располагаться?
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.06.2014, 14:18     Кастомизация ListView #7
KillAndEat, не будет
Используйте паттерн ViewHolder, чтобы не вызывать inflate и findViewById каждый раз. Не разберётесь как - подскажу.

Цитата Сообщение от KillAndEat Посмотреть сообщение
И вы не в курсе что это за элемент который выделен кружком на скриншоте в первом посте?
Да просто нарисуйте его в пейнте и поставьте как бекграунд для img_share
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.06.2014, 17:44     Кастомизация ListView
Еще ссылки по теме:

Кастомизация ListView и использование Sticky Header Android
Кастомизация стандартных вьювов - плагиат или нет? Android
Android Изменить ListView
Android Кастомизация ListView
Кастомизация прогресс-бара Android

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

Или воспользуйтесь поиском по форуму:
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
16.06.2014, 17:44  [ТС]     Кастомизация ListView #8
Цитата Сообщение от YuraAAA Посмотреть сообщение
ViewHolder
С этим паттерном знаком и активно его использую)

Цитата Сообщение от YuraAAA Посмотреть сообщение
Да просто нарисуйте его в пейнте и поставьте как бекграунд для img_share
Я про вью которое вызывается при нажатии на элемент) Смахивает на спинер, но вроде не он

Добавлено через 1 час 49 минут
Не пойму как сделать отступ у элемента листа с каждой стороны? Есть параметр setDividerHeight, но он делает отступ только между элементами. Может вконтакте используется сетка, а не список?

Добавлено через 1 час 32 минуты
Вопрос снят. Не буду больше пользоваться ListFragment =\
Yandex
Объявления
16.06.2014, 17:44     Кастомизация ListView
Ответ Создать тему
Опции темы

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