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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

Кастомизация Spinner - Программирование Android

17.11.2013, 13:19. Просмотров 2613. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Кастомизация Spinner (Программирование Android):

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

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

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

Кастомизация ListView - Программирование Android
http://imglink.ru/pictures/15-06-14/3d97212a44f93f016eb14cfbf868d023.jpg Как реализовать кастомизацию списка, как в офф приложении...

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

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

13
dubok79
323 / 121 / 11
Регистрация: 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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 10:44  [ТС] #4
Digetix, не, не помогает все одно выглядит как на вложенном мною первом рисунке
0
vxg
Модератор
3189 / 1992 / 228
Регистрация: 13.01.2012
Сообщений: 7,712
18.11.2013, 11:04 #5
Цитата Сообщение от dubok79 Посмотреть сообщение
Как добиться, что бы стиль был свой, но он растягивался на всю ячейку, а не по содержанию?
может что то вроде
android:layout_alignParentRight="true"
0
dubok79
323 / 121 / 11
Регистрация: 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
323 / 121 / 11
Регистрация: 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
323 / 121 / 11
Регистрация: 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
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
18.11.2013, 20:24  [ТС] #12
Пока ничего хорошего. Кастомный спинер по прежнему имеет ширину выбранной в нем позиции.

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

Добавлено через 1 час 34 минуты
Ну что, никто не поможет?
0
vxg
Модератор
3189 / 1992 / 228
Регистрация: 13.01.2012
Сообщений: 7,712
18.11.2013, 20:26 #13
Цитата Сообщение от dubok79 Посмотреть сообщение
у меня используется LinearLayout
используйте RelativeLayout
0
dubok79
323 / 121 / 11
Регистрация: 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
Привет! Вот еще темы с ответами:

Кастомизация прогресс-бара - Программирование Android
Добрый день. Каким образом засунуть в прогресс, вместо колора изображение? Код прилагаю: &lt;layer-list...

Кастомизация ListView и использование Sticky Header - Программирование Android
Использую библиотеку https://github.com/beworker/pinned-section-listview И столкнулся с вопросом по незнанию Там есть пример, делал на...

spinner - Программирование Android
как реализовать spinner чтобы к выбранной строке соответствовала число. например есть формула A+B+C=Z. A,B - это EditText (с этим все...

Spinner - Программирование Android
Доброго времени суток! Можно ли сделать так чтобы при выборе одного из вариантов спиннера открывался новый активити


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

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

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