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

时间:2015-04-20 16:50:24

标签: android eclipse text 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" />

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

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

我该如何更改我的代码?

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

(我无法发布图片)

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

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

2 个答案:

答案 0 :(得分:1)

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)在活动中声明微调器

 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

答案 1 :(得分:0)

我遇到了同样的问题。似乎有一个简单的解决方案,尝试获得旋转器中最长的选项。注意它的大小和硬编码值,如

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

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