Intereting Posts
Eclipse не распознает мой Android-планшет Несколько приложений с разными именами для одной и той же базы кода Com.google.aaaal 400 Bad Request {"error": "invalid_grant"} при вставке строки в bigquery Android, FAB, использующий конструкцию поддержки Android, квадрат в API ниже 21 Как работает Mono для Android? Плоские кнопочные панели Непредсказуемое поведение, вызванное PackageManager.DONT_KILL_APP Воссоздание флеш-апи-звонка в Android с помощью дооснащения Сбой Android при закрытии приложения и его повторном открытии Не удалось вызвать методы адаптера RecyclerView Android отображает различное изображение на разных разрешениях Получить URI файла .mp3, хранящегося в папке res / raw в android Переключатель отображает множество чертежей для большого пальца и дорожки определенного размера Как остановить Proguard от удаления параметров типа? Какова цель частных библиотек Android, справочных библиотек и Android Dependies в иерархии проектов Android?

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

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

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

благодаря

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

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" />