在android中手动设置微调器下拉列表的宽度

时间:2009-10-11 22:24:38

标签: android layout spinner

是否可以在代码中设置微调器下拉列表的宽度?我有一个用整数填充的微调器,当列表扩展到全宽时它看起来不太好。我可以设置宽度以某种方式包装内容吗?

Spinner hSpinner = (Spinner) timerView.findViewById(R.id.timer_hour_spinner);
ArrayList<Integer> hList = new ArrayList<Integer>(21);

for (int i = 0; i <= 20; i++) { hList.add(i); }

ArrayAdapter hAdapter = new ArrayAdapter(RemindMe.this, android.R.layout.simple_spinner_item, hList);
hAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

hSpinner.setAdapter(hAdapter);

谢谢!

莱纳斯

4 个答案:

答案 0 :(得分:2)

只需使用:

setDropDownWidth(desiredWidth);

答案 1 :(得分:1)

您可以通过调整LayoutParams来更改代码中任何内容的宽度。其详细信息因容器而异(LinearLayoutRelativeLayout对比......)。

但是,我很困惑你为什么要在代码中改变宽度。为什么不在布局XML中将宽度设置为wrap_content

答案 2 :(得分:0)

控制微调器下拉外观很简单。试试这个:

//Step 1. create the drop down list
static List<String> special_Spinner_Display_List = new ArrayList<String>();  
// add your values to the list...(this is best done using a for loop)
special_Spinner_Display_List.add(item1);
special_Spinner_Display_List.add(item2);  //etc., etc.

//Step 2. build the spinner
ArrayAdapter arrayAdapter_special = new ArrayAdapter(this, 
      R.layout.your_special_spinner, special_Spinner_Display_List);
arrayAdapter_special.setDropDownViewResource(R.layout.special_spinner_dropdown);
specialSpinner.setAdapter(arrayAdapter_special);

//Step 3. create an XML layout file called special_spinner_dropdown where you can 
//style to your heart's content.  Here's an example:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/SpinnerDropdown"
style="?android:attr/spinnerDropDownItemStyle"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="#D5ECED"
android:ellipsize="marquee"
android:singleLine="true"
android:textSize="24sp" 
android:textStyle="bold"
android:textColor="@color/black" />

就是这样。 Lemme知道它是如何工作的!

答案 3 :(得分:0)

使用标记

在微调框的xml文件中设置下拉宽度

机器人:dropDownWidth = “@扪/ desired_width”

解释:

mDropDownWidth = pa.getLayoutDimension(R.styleable.Spinner_dropDownWidth,
        ViewGroup.LayoutParams.WRAP_CONTENT);

当在Spinner类

中初始化微调器项时,此字段用于下拉宽度

以编程方式更改微调级别16以上的微调器下拉宽度,使用

mSpinner.setDropDownWidth(size_in_pixel);