这是代码:
spinner.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="40dp"
android:maxLines="1"
android:gravity="center"
android:singleLine="true"
android:textColor="#FFFFFF"
android:textSize="12sp" />
Run Code Online (Sandbox Code Playgroud)
微调器:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
Run Code Online (Sandbox Code Playgroud)
Java:
array = new ArrayAdapter<String>(Activity.this,
R.layout.spinner, ArrayList);
array .setDropDownViewResource(R.layout.spinner);
Spinner.setAdapter(array );
Spinner.setOnItemSelectedListener(this);
Run Code Online (Sandbox Code Playgroud)
问题:文本仍然与左对齐
只需添加您的默认应用主题样式这两行:
<item name="android:spinnerItemStyle">@style/spinnerItemStyle</item>
<item name="android:spinnerDropDownItemStyle">
@style/spinnerDropDownItemStyle
</item>
Run Code Online (Sandbox Code Playgroud)
创造新的风格:
<style name="spinnerItemStyle">
<item name="android:gravity">center</item>
</style>
<style name="spinnerDropDownItemStyle">
<item name="android:gravity">center</item>
</style>
Run Code Online (Sandbox Code Playgroud)
而已 !
请注意,此处使用的基本主题是:Theme.AppCompat.Light,它将作为应用程序中的默认微调器样式应用.
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:ellipsize="marquee"
android:textAlignment="center"
android:textSize="17sp"
tools:ignore="MissingPrefix" />
Run Code Online (Sandbox Code Playgroud)
使用此Textview作为传递给适配器的布局.
android:textAlignment="center"这条线是制造魔力的人
小智 3
我已经关注了:http://nevesheng.blogspot.fr/2013/05/spinner-with-item-text-aligned-to-center.html & 这工作得很好
我注意到我在 value-v11 文件夹中有另一个 spinner xml,这个没有修改,我已经修改了它并且它有效