Intereting Posts
Android: доступ к string.xml с использованием имени переменной Android selectableItemBackground не оказывает влияния на длительное нажатие Приложение не показано в admob при попытке ссылки? Отправить и получить IQ XMPP ASMACK Android Разрешения на приложение для Android Marshmallow в PhoneGap Android – Как установить панель рейтинга без клика и сенсорного в HTC mobile Градиент / тень Google Now на панели состояния и панели навигации Android – показывать уведомления, даже если он отключен для приложения? Символы удаляются при создании собственного кода с помощью Gradle Как нарисовать линию в ImageView на Android? Как показать неопределенный индикатор выполнения при нажатии кнопки «Обновить» в ActionBarSherlock? Кордова Ошибка при использовании Cordova-Android 6.2.0 – getFileResources не является функцией Применение программного обеспечения стиля Настройка Firebase Analaytics + Диспетчер тегов Google (GTM) для каждого варианта сборки Как получить идентификатор приложения Android?

Установить выравнивание текста в центре в spinner в android

Возможный дубликат с https://stackoverflow.com/q/4545559/760489

Я хочу выровнять текст представления прядильщика в центре. Я google, но ничего не нашел, знает ли кто-нибудь об этом? Любая помощь или предложение оценены

благодаря

Solutions Collecting From Web of "Установить выравнивание текста в центре в spinner в android"

Создайте адаптер для вашего счетчика, как это,

ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, R.layout.my_spinner_style,array_of_values) { public View getView(int position, View convertView,ViewGroup parent) { View v = super.getView(position, convertView, parent); ((TextView) v).setTextSize(16); return v; } public View getDropDownView(int position, View convertView,ViewGroup parent) { View v = super.getDropDownView(position, convertView,parent); ((TextView) v).setGravity(Gravity.CENTER); return v; } }; 

Теперь ваш макет R.layout.my_spinner_style ,

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+android:id/text1" style="?android:attr/spinnerItemStyle" android:singleLine="true" android:textColor="#ffffff" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ellipsize="marquee" /> 

Теперь установите этот адаптер на свой счетчик,

 spinner.setAdapter(adapter); 

Вам нужно установить свой собственный макет для элемента spinner.

 SpinnerAdapter adap = new ArrayAdapter<String>(this, R.layout.spinner_item, new String[]{"A", "B", "C"}); spriner.setAdapter(adap); 

Где R.layout.spinner_item – это макет с контентом:

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:layout_width="fill_parent" android:gravity="center" android:textColor="#000000" android:text="Sample Text" android:paddingBottom="5dp" android:paddingTop="5dp"></TextView> 

Это очень просто, просто создайте xml файл с именем spinner_item.xml с контентом как

 <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="#111111" android:padding="10dp" android:textAlignment="center" /> 

Теперь в вашем классе java , несмотря на добавление ресурса представления по умолчанию для Android, добавьте свой пользовательский ресурс просмотра как

 ArrayAdapter<String> adapter= new ArrayAdapter<String>(context, R.layout.spinner_item, myList); adapter.setDropDownViewResource(R.layout.spinner_item); 

Строка textAlignment сделает трюк.

Это работает без изменений макета

 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) { ((TextView) adapterView.getChildAt(0)).setGravity(Gravity.CENTER); } }); 

Поздно к игре, но я хотел добавить это для будущих пользователей только потому, что нашел это простым решением для моей проблемы. Это позволило мне сосредоточить простой текст без создания пользовательского макета. То, как я это делал, это использовать padding

 <Spinner android:id="@+id/example_spinner" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingLeft="10dp" android:paddingRight="10dp" android:paddingTop="2dp" android:paddingBottom="2dp" /> 

Используя этот метод, мне удалось сконцентрировать мой текст внутри моего счетчика. Вероятно, это будет работать только для простых случаев, но вы, вероятно, захотите использовать пользовательский макет для более сложных случаев. Это просто, чтобы ваши xml-файлы были недоступны, и вам не нужно использовать специальный макет, чтобы центрировать простой счетчик.

Позвольте мне ответить. Также важно сделать пространство в Spinner.

Неправильно:

 <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" /> 

Правильно:

 <Spinner android:id="@+id/spinner" android:layout_width="100dp" android:layout_height="wrap_content" />