Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 19.02.2015
Сообщений: 21

Правое выравнивание текста в Spinner

08.04.2017, 19:49. Показов 3916. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Случилась у меня вот такая проблема, сколько я не бился, но и решить или понять почему так я не могу. Предупреждаю, что в Android я чайник.
Для красивого интерфейса, мне необходимо сделать правое выравнивание текста в элементе Spinner, в котором по умолчанию выравнивание по левому краю. У меня это получилось, но не так как бы хотелось бы. (см. рис. 1 и рис. 2), а именно как список закрыт выравнивание остаётся по левому краю, а по правому краю выравнивание происходит, только когда список открыт. Как сделать выравнивание по правому краю, когда список закрыт?


activity_main.xml

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
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mikhail.mytranslate.MainActivity">
 
 
 
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
 
        <include
            android:id="@+id/toolbar"
            layout="@layout/tool_bar"/>
 
        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="fixed"
            app:tabGravity="fill"/>
    </android.support.design.widget.AppBarLayout>
 
    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"  />
</android.support.constraint.ConstraintLayout>
tool_bar.xml
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
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:actionBarSize"
    android:background="@color/toolBarBackground">
 
    <LinearLayout
        android:id="@+id/toolbar_lang"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal">
 
        <Spinner
            android:id="@+id/from_language"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/toolBarBackground"
            android:minWidth="120dp"/>
 
        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:src="@drawable/ic_swap_horiz_36dp" />
 
        <Spinner
            android:id="@+id/to_language"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/toolBarBackground"
            android:minWidth="120dp"/>
    </LinearLayout>
 
</android.support.v7.widget.Toolbar>
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  
      Spinner spinnerLeft = (Spinner) findViewById(R.id.from_language);
        Spinner spinnerRight = (Spinner) findViewById(R.id.to_language);
 
        ArrayAdapter<String> spinnerAdapterLeft = new ArrayAdapter<String>(
                this,
                R.layout.spinner_item_lang_left,
                R.id.language,
                getResources().getStringArray(R.array.languages)
        );
 
        ArrayAdapter<String> spinnerAdapterRight = new ArrayAdapter<String>(
                this,
                R.layout.spinner_item_lang_right,
                R.id.language,
                getResources().getStringArray(R.array.languages)
        );
 
        spinnerAdapterLeft.setDropDownViewResource(R.layout.spinner_item_lang_left);
        spinnerAdapterRight.setDropDownViewResource(R.layout.spinner_item_lang_right);
 
        spinnerLeft.setAdapter(spinnerAdapterLeft);
        spinnerRight.setAdapter(spinnerAdapterRight);
spinner_temp_lang_left.xml

XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/language"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/toolBarForeground"
    android:gravity="end"
    android:background="@color/toolBarBackground"
    />
если надо ещё какие нибудь ресурсы из проекта, то пишите.

И заранее благодарю за помощь.
Миниатюры
Правое выравнивание текста в Spinner   Правое выравнивание текста в Spinner  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.04.2017, 19:49
Ответы с готовыми решениями:

Правое выравнивание текста в компоненте Edit
TEdit1 = class(TEdit) public procedure CreateParams(var Params: TCreateParams); Override; end; procedure...

Как сменить размер текста у Spinner
Здравствуйте! Как сменить размер текста у Spinner`а?

Как изменить цвет текста в spinner?
Здравствуйте. Подскажите как изменить цвет текста выбранного элемента в spinner (когда он свернту). Если делаю так: private void...

9
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.04.2017, 20:27
XML
1
android:layout_gravity
с атрибутом end или right, например.

Не по теме:

что-то я так и не увидел красивого интерфейса.

0
1 / 1 / 1
Регистрация: 19.02.2015
Сообщений: 21
08.04.2017, 20:35  [ТС]
В какой элемент совать атрибут?

Не по теме:

красота понятие относительное, для меня, зеленого новичка самоучки такой интерфейс красивый

0
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
08.04.2017, 23:27
В тот, который надо.

Ну и что, ты никогда не пользовался другими приложениями? Причём тут новичок или нет, взять вот твой супер-длинный скроллбар, он перекрывает последнюю букву, этого достаточно, чтобы простого юзера передёрнуло.
0
1 / 1 / 1
Регистрация: 19.02.2015
Сообщений: 21
09.04.2017, 10:13  [ТС]
Если не можете ответить по делу, лучше совсем не отвечать, пойду что ли на Stack Overflow задам вопрос, там хотя бы по делу отвечают.
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
09.04.2017, 10:53
Лучший ответ Сообщение было отмечено YellowTriangle как решение

Решение

YellowTriangle, попробуйте в самом Spinner-е поменять android:layout_width="wrap_content" на android:layout_width="match_parent"
1
1 / 1 / 1
Регистрация: 19.02.2015
Сообщений: 21
09.04.2017, 11:26  [ТС]
Спасибо, помогло, вы спасли кучу моего времени, которые я потратил бы на отладку этого.
Выкладываю разметку может быть в будущем у кого то будет такая же проблема. Был бы двойне рад, если вы объяснили, в чём было дело.

tool_bar
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
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:actionBarSize"
    android:background="@color/toolBarBackground">
 
    <LinearLayout
        android:id="@+id/toolbar_lang"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:weightSum="100">
 
        <Spinner
            android:id="@+id/from_language"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/toolBarBackground"
            android:layout_weight="30"
            android:minWidth="120dp"/>
 
        <ImageButton
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/transparent"
            android:layout_weight="40"
            android:src="@drawable/ic_swap_horiz_36dp" />
 
        <Spinner
            android:id="@+id/to_language"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/toolBarBackground"
            android:layout_weight="30"
            android:minWidth="120dp"/>
    </LinearLayout>
 
</android.support.v7.widget.Toolbar>


И фото результата прилагается.
Миниатюры
Правое выравнивание текста в Spinner  
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
09.04.2017, 11:50
Цитата Сообщение от YellowTriangle Посмотреть сообщение
Был бы двойне рад, если вы объяснили, в чём было дело.

В первом случае вы получаете размер по содержимому элемента.
Во втором максимально возможная ширина от родительского элемента, которую вы выделили под spinner.
1
1 / 1 / 1
Регистрация: 19.02.2015
Сообщений: 21
09.04.2017, 12:20  [ТС]
Цитата Сообщение от fraley Посмотреть сообщение
В первом случае вы получаете размер по содержимому элемента.
Во втором максимально возможная ширина от родительского элемента, которую вы выделили под spinner.
Да, это я знаю, но не понимаю, помечу это влияло на выравнивание текста в самом элементе TextView из которого состоял Spinner. Извините, что возможно это очевидно, но я не понимаю.
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
09.04.2017, 14:26
Цитата Сообщение от YellowTriangle Посмотреть сообщение
Да, это я знаю, но не понимаю, помечу это влияло на выравнивание текста в самом элементе TextView из которого состоял Spinner. Извините, что возможно это очевидно, но я не понимаю.
У вас в spinner_temp_lang_left.xml прописано android:gravity="end"
Это бессмыслено в контексте того, что лайауте, где находиться спиннер он был прописан как android:layout_width="wrap_content". Т.е. он всегда занимал ровно то пространство, которое требовалось бы для например слова "czech". Один из вариантов вам предлагал уважаемый ExFau$t, с помощью аттрибута android:layout_gravity сместить спиннер в самом лайоуте. В моем же варианте спиннер растягивается на максимально возможную для него ширину, и уже в нем с помошью android:gravity="end" текст смещается вправо.
Надеюсь понятно объяснил, т.к. у меня с объяснениями всегда плохо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2017, 14:26
Помогаю со студенческими работами здесь

Сохранение текста из Spinner а в базу SQLite
Уважаемые гуру, прошу помощи. Имеется несколько данные (массив) в Spinner е и кнопка. При нажатии кнопки данные из Spinnera должны...

Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Здравствуйте. В программе использую две темы светлую и темную: &lt;style name=&quot;BlackTheme&quot; ...

HTML!? Выравнивание IMG после текста по центру этого текста
как выровнять изображение по центру текста? имеется в виду опустить изображение на пару пикселей, только если исп. margin-top в его css,...

Выравнивание текста в ячейке грида при вводе текста
Вечер добрый. Не подскажите, у меня выравнивание работает (по вертикале и 5 пикселей от левого края по горизонтали) int x,y; x =...

Выравнивание текста в ячейке по вертикали в зависимости от высоты текста
Подскажите, есть ли возможность прорисовывать текст в ячейке грида, в зависимости от её высоты. Видимо пересчитывать как то с помощью ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru