以下是代码:
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" />
Spinner:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
Java:
array = new ArrayAdapter<String>(Activity.this,
R.layout.spinner, ArrayList);
array .setDropDownViewResource(R.layout.spinner);
Spinner.setAdapter(array );
Spinner.setOnItemSelectedListener(this);
问题:文字仍然与左对齐
答案 0 :(得分:9)
在微调器上使用以下标签
android:textAlignment="center"
答案 1 :(得分:6)
只需在默认的应用主题样式中添加以下两行:
<item name="android:spinnerItemStyle">@style/spinnerItemStyle</item>
<item name="android:spinnerDropDownItemStyle">
@style/spinnerDropDownItemStyle
</item>
创建新样式:
<style name="spinnerItemStyle">
<item name="android:gravity">center</item>
</style>
<style name="spinnerDropDownItemStyle">
<item name="android:gravity">center</item>
</style>
多数民众赞成!
请注意,此处使用的基本主题是:Theme.AppCompat.Light,它将作为应用程序中的默认微调器样式应用。
答案 2 :(得分:6)
<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" />
使用此Textview作为传递到适配器的布局
android:textAlignment="center"
这条线是制造魔法的那条
答案 3 :(得分:2)
您的布局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);
为您的微调器创建一个适配器,如下所示
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;
}
};
答案 4 :(得分:2)
我跟着这个:http://nevescheng.blogspot.fr/2013/05/spinner-with-item-text-aligned-to-center.html&amp;这很好用
我注意到我有另一个spinner xml in value-v11 Folder&amp;这个没有修改,我修改了它&amp;它的工作
答案 5 :(得分:2)
最佳答案并经过document.getElementById()
测试,但在Marshmallow中,我必须添加<script type="text/javascript">
function act_desact()
{
if ( document.getElementByName("quantité").value >=10 )
document.getElementByName("submit").disabled=true;
else
document.getElementByName("submit").disabled=false;
}
</script>
才能使下拉列表项居中。因此,基于Mouloud
代码的完整代码是:
textAlignment
现在将样式添加到主题样式中:
Mouloud
答案 6 :(得分:0)
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView label = new TextView(context);
label.setText(myObjs[position].getText());
label.setGravity(Gravity.CENTER);
return label;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
TextView label = new TextView(context);
label.setText(myObjs[position].getText());
label.setGravity(Gravity.CENTER);
return label;
}
答案 7 :(得分:0)
将此行添加到微调器中,
android:textAlignment="center"
完成!