在中心对齐文本 - 微调器

时间:2015-05-23 13:36:57

标签: android xml

以下是代码:

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);

问题:文字仍然与左对齐

8 个答案:

答案 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"

完成!