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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
17.11.2013, 13:19     Кастомизация Spinner #1
Пытаюсь изменить внешний вид spinner
Сделал для него стиль вида

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <style name="spinner">
        <item name="android:background">@drawable/spinner_selector</item>
    <item name="android:layout_marginLeft">3dp</item>
    <item name="android:layout_marginRight">3dp</item>
    <item name="android:layout_marginTop">2dp</item>
    <item name="android:layout_marginBottom">2dp</item>
    <item name="android:paddingLeft">2dp</item>
    <item name="android:paddingRight">15dp</item>
    <item name="android:paddingTop">3dp</item>
    <item name="android:paddingBottom">3dp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_gravity">left</item>
    </style>
spinner_selector.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape>
                    <stroke 
                        android:width="1dp" 
                        android:color="#77dd77" />
                    <solid
                        android:color="#fff" />
                </shape>
            </item>
            <item>
                <bitmap 
                    android:gravity="bottom|right" 
                    android:src="@drawable/spinner_arrow" />
            </item>
        </layer-list>
    </item>
</selector>
spinner_arrow - PNG рисунок размером 20х20

Ставлю все это в табличку

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
            <TableLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >
 
                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
 
                    <TextView
                        android:id="@+id/txt1"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="@string/txt1" 
                        android:layout_weight="0.5"/>
        
                    <Spinner
                        android:id="@+id/spn1"
                        android:layout_weight="0.5"
                        style="@style/spinner"/>
                    
                </TableRow>
 
                <TableRow
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >
 
                    <TextView
                        android:id="@+id/txt2"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_weight="0.5"
                        android:text="@string/txt2" />
        
                    <Spinner
                        android:id="@+id/spn2"
                        android:layout_weight="0.5"
                        style="@style/spinner"/>
                </TableRow>
            </TableLayout>
В этом случае все это выглядит так
Кастомизация Spinner
А если убрать стиль, то так
Кастомизация Spinner
Как добиться, что бы стиль был свой, но он растягивался на всю ячейку, а не по содержанию?
Спасибо.

P.S. Причем, если спинер вынести из таблички, то он растянется на всю ширину, как и планировалось.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 13:19     Кастомизация Spinner
Посмотрите здесь:

spinner Android
Spinner Android
Кастомизация списков Android
Android Кастомизация табов в actionbar
Кастомизация заголовока окна Android
Кастомизация ListView Android
Android Кастомизация ListView
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
17.11.2013, 14:06  [ТС]     Кастомизация Spinner #2
И еще, покажите пожалуйста пример, как распределить элементы в таблице 2х2, что бы все ячейки были одинакового размера по ширине, но в 1 столбце TextView, а во втором EditText
Заранее спасибо.

Совсем запутался, все криво у меня получается.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.11.2013, 01:43     Кастомизация Spinner #3
Цитата Сообщение от dubok79 Посмотреть сообщение
как распределить элементы в таблице 2х2, что бы все ячейки были одинакового размера по ширине, но в 1 столбце TextView, а во втором EditText
Сделать для них всех
XML
1
android:layout_weight="1"
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 10:44  [ТС]     Кастомизация Spinner #4
Digetix, не, не помогает все одно выглядит как на вложенном мною первом рисунке
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,505
18.11.2013, 11:04     Кастомизация Spinner #5
Цитата Сообщение от dubok79 Посмотреть сообщение
Как добиться, что бы стиль был свой, но он растягивался на всю ячейку, а не по содержанию?
может что то вроде
android:layout_alignParentRight="true"
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 11:26  [ТС]     Кастомизация Spinner #6
vxg, у меня используется LinearLayout, там нет такого параметра, пишет: Invalid layout param in a TableRow: layout_alignParentRight

Не хотелось бы все равнять этими привязками, хотя с другой стороны все выглядит ровнее
verylazy
Заблокирован
18.11.2013, 12:21     Кастомизация Spinner #7
Цитата Сообщение от dubok79 Посмотреть сообщение
Digetix, не, не помогает все одно выглядит как на вложенном мною первом рисунке
XML
1
2
3
4
<Spinner
                        android:id="@+id/spn2"
                        android:layout_weight="0.5"
                        style="@style/spinner"/>
а зачем тут android:layout_weight="0.5" ?
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 12:41  [ТС]     Кастомизация Spinner #8
verylazy, каждому свой вес, по 50% на брата. Или я не правильно это понимаю?
Да я честно говоря уже все убирал, одно рисует не растягивая. Если использовать стандартную тему то все ок. Попробую еще ее парент запользовать.
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.11.2013, 18:01     Кастомизация Spinner #9
Цитата Сообщение от dubok79 Посмотреть сообщение
каждому свой вес, по 50% на брата
Каждому своё это
XML
1
android:layout_weight="1"
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 18:22  [ТС]     Кастомизация Spinner #10
Digetix, прошу прощения я не понял о чем вы
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
18.11.2013, 18:36     Кастомизация Spinner #11
Ну так что у вас получилось?
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 20:24  [ТС]     Кастомизация Spinner #12
Пока ничего хорошего. Кастомный спинер по прежнему имеет ширину выбранной в нем позиции.

Добавлено через 12 минут
Причем в предварительном просмотре в эклипсе, все отображается как и задумывалось. А при установке на смарт такая ерунда. Даже EditText работает прекрасно, хотя по сути все те же настройки, что и у спинера.

Добавлено через 1 час 34 минуты
Ну что, никто не поможет?
vxg
Модератор
 Аватар для vxg
2726 / 1737 / 173
Регистрация: 13.01.2012
Сообщений: 6,505
18.11.2013, 20:26     Кастомизация Spinner #13
Цитата Сообщение от dubok79 Посмотреть сообщение
у меня используется LinearLayout
используйте RelativeLayout
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 11:02     Кастомизация Spinner
Еще ссылки по теме:

Кастомизация ListView и использование Sticky Header Android
Spinner Android
Android Кастомизация ListView
Spinner Android
Кастомизация прогресс-бара Android

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

Или воспользуйтесь поиском по форуму:
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.11.2013, 11:02  [ТС]     Кастомизация Spinner #14

не люблю я его
попробую...если нет другого выхода
спс

Добавлено через 14 часов 35 минут
Все, сделал. Вместо TableLayout использовал RelativeLayout. Чуть сложнее, но зато все как надо показывает. Всем спасибо.
Yandex
Объявления
19.11.2013, 11:02     Кастомизация Spinner
Ответ Создать тему
Опции темы

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