Подтвердить что ты не робот

Android - текст сдвинут влево в Spinner

У меня есть прядильщик со стилем. Стиль содержит только фон для счетчика. Проблема в том, что независимо от того, какое изображение я использую для фона, текст счетчика всегда сдвигается влево.

Это объявление Spinner в XML -

<Spinner
 android:layout_height="wrap_content"
 android:layout_toRightOf="@+id/minus"
 android:layout_width="wrap_content"
 android:layout_below="@+id/female"
 android:id="@+id/spin"
 android:gravity="center"
 android:background="@drawable/spin"
 android:layout_marginTop="10dip">
 </Spinner>

Кроме того, я получаю предупреждение под атрибутом android: gravity, который говорит, что он неизвестный атрибут XML.

Я не могу понять, почему он это делает.

Спасибо

4b9b3361

Ответ 1

Продолжая мой последний комментарий выше...

Следующий код изменяет приложение-пособие Hello Spinner, чтобы отобразить содержимое текста с прядильным центром по горизонтали, как показано на следующих двух снимках экрана.

Рез/макет/my_spinner_textview.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/spinnerItemStyle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center" />
public class HelloSpinner extends Activity
{
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array,
//        android.R.layout.simple_spinner_item);
        R.layout.my_spinner_textview);
//    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    adapter.setDropDownViewResource(R.layout.my_spinner_textview);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
  }

  //No other modification needed.

Q5755506_Centered_Spinner_Contents_1.png

Q5755506_Centered_Spinner_Contents_2.png

Это, надеюсь, обеспечивает достаточное направление для устранения проблемы.

Ответ 2

Использовать android: textAlignment = "center" tag на spinner

 <android.support.v7.widget.AppCompatSpinner
        android:id="@+id/state"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAlignment="center"/>

Ответ 3

Добавьте гравитацию в свой XML файл...

<Spinner
 android:gravity="center">
</Spinner>

Или добавьте гравитацию в свой Java-код...

Spinner spinner = (Spinner)findViewById(R.id.spinner);
spinner.setGravity(17);
//17 = center

Ответ 4

У меня тоже была эта проблема, и принятый ответ мне не помог.

Если это также относится к вам, убедитесь, что ни один родительский макет не переопределяет гравитацию элемента прядильной машины. В моем случае я должен был установить силу тяжести всего Spinner вправо.

Ответ 5

Если вы хотите видеть флажки в раскрывающемся меню, используя свой собственный макет:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            mContext, R.array.room_list, R.layout.spinner_layout);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    yourSpinner.setAdapter(adapter);

Обратите внимание на "андроид" перед "R.layout...." в строке, где вы помещаете раскрывающийся список ресурсов!