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.
Я не могу понять, почему он это делает.
Спасибо
Ответы
Ответ 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...." в строке, где вы помещаете раскрывающийся список ресурсов!