微调器中的文本更改高度和宽度选择微调器的另一个项目

Text in a spinner changes height and width selecting another item of the spinner

我为 Android 微调器编写了这段代码:

  <Spinner
    android:id="@+id/lstCommunity"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/community_string"
    android:layout_alignLeft="@+id/txtName"
    android:layout_below="@+id/txtName"
    android:minHeight="0dp"
    android:textSize="10sp"
    android:background="@drawable/box" />

但是在选择列表中的另一个项目后,微调器中的文本更改为高度和宽度。

所以,最初它比微调器的高度和宽度小一点,在选择另一个项目后,它变得真的比微调器的尺寸大。

我应该如何更改我的代码?

第一次编辑: 我正在尝试使用微调器从列表中选择一些文本。

(我无法 post 图片)

文本最初适合微调框,但在下拉菜单中选择另一个选项后文本变得大于微调框。

编辑 2: Java 与微调器相关的代码:

Spinner mySpinner = (Spinner) findViewById(R.id.lstCommunity);
ArrayAdapter<CharSequence> adapter =ArrayAdapter.createFromResource(this, R.array.array1, android.R.layout.simple_spinner_item); 
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mySpinner.setAdapter(adapter);

1) 在 res/layout

中创建 spinnertext.xml

例如:

  xml version="1.0" encoding="utf-8"?>
 <TextView xmlns:android="http://schemas.android.com/.    apk/res/android"
  android:text="@+id/TextView01"
  android:id="@+id/TextView01"
  android:layout_width="wrap_content"   
  android:layout_height="wrap_content"
  android:textSize="12sp"
  android:textColor="#FFFFFFFF"
  android:gravity="center"/>

2)在文件 main.xml 中声明微调器(在 res\layout 中),以管理其大小:

  <Spinner
    android:id="@+id/spinner"
    android:layout_width="fill_parent"
    android:layout_height="32dip"
    android:drawSelectorOnTop="true"
    android:prompt="@string/spinner_prompt"
     />

3) 在 activity

中声明微调器
 Spinner s = (Spinner) findViewById(R.id.spinner);
  ArrayAdapter adapter =   ArrayAdapter.createFromResource(this, R.array.sensors, R.layout.spinnertext);      
   adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
 //when an item is selected call the selectSensor method
s.setOnItemSelectedListener(new OnItemSelectedListener() {
  @Override
  public void onItemSelected(AdapterView parent, View view,     int position, long id) {
        selectSensor(parent.getItemAtPosition(position));
  }
  @Override
        public void onNothingSelected(AdapterView arg0) {
        }
     });

请注意 createfromresource 函数中的更改。

来源:http://android2ee.blogspot.it/2011/11/spinner-managing-size-and-text.html

我遇到了同样的问题。似乎有一个简单的解决方案,尝试在微调器中获得最长的可用选项。注意它的大小并将值硬编码为

  <spinner
    android:layout_width="120dp"
    android:layout_height="40dp"
    android:id="@+id/spinner"/>   

注意:120dp和40dp只是示例,需要根据您的示例进行调整