如何增加Android微调器的可点击宽度?

时间:2012-08-09 14:38:14

标签: android spinner

我有Spinner,显示单位数字(1-6)。

当我在手机上进行测试时,几乎不可能点击一个数字,因为它们很窄(字体大小为12sp),唯一可点击的区域就是文本本身。

理想情况下,我希望用户能够点击Spinner下拉菜单上的更大宽度,而不仅仅是文字。我尝试用空格填充,但这些被抑制了,我尝试使用PaddingLeft/Right但是再次没有区别。

以下是Spinner

<Spinner
            android:id="@+id/spinner_period1"
            android:layout_toRightOf="@id/spinner_weekday1"
            android:layout_below="@id/col1day"
            android:layout_height="wrap_content"
            android:prompt="@string/enterperiod"
            android:layout_width="80dp"
            android:entries="@array/periodlist"
            android:layout_marginRight="340dp"
            android:layout_marginBottom="20dip"
            />

请注意,我还使用以下方式设置了Spinner文本属性:

<TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/textview"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:textSize="12sp"
        android:textColor="#768766"
        />

有什么想法吗?提前致谢

标记

4 个答案:

答案 0 :(得分:7)

尝试在TextView属性中更宽android:layout_width

<TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/textview"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:textSize="12sp"
        android:textColor="#768766"
        />

这可能会解决您的问题或至少改善它。

答案 1 :(得分:3)

尝试将TextView布局宽度设置为某个任意值,而不是“wrap_content”。这应该使整个事情可以点击,而不仅仅是包装内容。

答案 2 :(得分:1)

只需在微调器中添加一些填充即可帮助我解决此问题。

<Spinner
    android:id="@+id/spinner"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:padding="25dp"
    android:scrollbarSize="20dp" />

答案 3 :(得分:0)

方式1: 使用 android:spinnerMode 将微调器的选项显示为下拉列表。因此,请查看API(Android API Spinner)。或者玩 android:dropDownWidth

方式2(我在APP中使用它但目前我无法访问代码): 也许你可以在用文本填充微调器的同时设置另一个布局 - 而不是在XML中分配值。

Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
        R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);

它是从以下链接Android Spinner复制而来的。也许你可以使用android.R的一个布局模板。