Android - 文本在Spinner中向左推

时间:2011-04-22 12:42:47

标签: android

我有一个风格的微调器。该样式仅包含微调器的背景。问题是,无论我使用哪个图像作为背景,旋转器的文本总是被推到左边。

这是XML中Spinner的声明 -

<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属性。

我无法理解为什么会这样做。

由于

5 个答案:

答案 0 :(得分:37)

继续我上面的评论......

以下代码修改the Hello Spinner tutorial application以显示水平居中的微调文本内容,如以下两个屏幕截图所示。

<强> RES /布局/ 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.

这有望提供足够的方向来解决问题。

答案 1 :(得分:6)

使用android:textAlignment =&#34; center&#34;微调器上的标签

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

答案 2 :(得分:4)

在xml文件中添加重力......

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

或者在java代码中添加引力......

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

答案 3 :(得分:1)

我也有这个问题,接受的答案对我没用。

如果这也适用于您,请确保没有父布局会覆盖微调器项的重力。就我而言,我必须将整个Spinner的重力设置为正确。

答案 4 :(得分:0)

如果您想在使用自己的布局时看到下拉菜单中的复选框:

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 ....”之前的“android”!