Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
1

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

17.11.2013, 13:19. Просмотров 2833. Ответов 13
Метки нет (Все метки)

Пытаюсь изменить внешний вид 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. Причем, если спинер вынести из таблички, то он растянется на всю ширину, как и планировалось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 13:19
Ответы с готовыми решениями:

Кастомизация ListView
Добрый день. Перерыл пол инета но так и не нашел нормальный мануал как можно...

Кастомизация списков
В инете есть множество примеров изменение внешнего вида ListView с помощью...

Кастомизация SeekBar?
Добрый день! нужно кастомизировать seekbar, знаю (видел) много примеров, но...

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

Кастомизация ListView
http://imglink.ru/pictures/15-06-14/3d97212a44f93f016eb14cfbf868d023.jpg Как...

13
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
17.11.2013, 14:06  [ТС] 2
И еще, покажите пожалуйста пример, как распределить элементы в таблице 2х2, что бы все ячейки были одинакового размера по ширине, но в 1 столбце TextView, а во втором EditText
Заранее спасибо.

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

Не хотелось бы все равнять этими привязками, хотя с другой стороны все выглядит ровнее
0
verylazy
Заблокирован
18.11.2013, 12:21 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" ?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 12:41  [ТС] 8
verylazy, каждому свой вес, по 50% на брата. Или я не правильно это понимаю?
Да я честно говоря уже все убирал, одно рисует не растягивая. Если использовать стандартную тему то все ок. Попробую еще ее парент запользовать.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.11.2013, 18:01 9
Цитата Сообщение от dubok79 Посмотреть сообщение
каждому свой вес, по 50% на брата
Каждому своё это
XML
1
android:layout_weight="1"
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 18:22  [ТС] 10
Digetix, прошу прощения я не понял о чем вы
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
18.11.2013, 18:36 11
Ну так что у вас получилось?
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 20:24  [ТС] 12
Пока ничего хорошего. Кастомный спинер по прежнему имеет ширину выбранной в нем позиции.

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

Добавлено через 1 час 34 минуты
Ну что, никто не поможет?
0
vxg
Модератор
3261 / 2059 / 325
Регистрация: 13.01.2012
Сообщений: 7,972
18.11.2013, 20:26 13
Цитата Сообщение от dubok79 Посмотреть сообщение
у меня используется LinearLayout
используйте RelativeLayout
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
19.11.2013, 11:02  [ТС] 14

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

Добавлено через 14 часов 35 минут
Все, сделал. Вместо TableLayout использовал RelativeLayout. Чуть сложнее, но зато все как надо показывает. Всем спасибо.
1
19.11.2013, 11:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2013, 11:02

Кастомизация табов в actionbar
необходимо чтобы табы выглядели примерно как на приложенном фото, как это можно...

Кастомизация заголовока окна
Лайауты имеют белый фон и тему по-умолчанию. На версии 4.1 заголовки окон не...

Кастомизация прогресс-бара
Добрый день. Каким образом засунуть в прогресс, вместо колора изображение? Код...


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

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

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