在没有自定义样式的Android Spinner中的项目之间添加更多空间?

我有一个Android应用程序,我正在写一个混凝土公司,将用于时钟进出。 我曾经用一些纺纱工来select工作场所和工作岗位,但是我担心纺纱工的物品太靠近了,而且员工很难select合适的物品。

我想给微调项目之间多一点空间,但不想经历所有制作自定义风格的麻烦,因为我真的希望微调看起来和行为完全一样,除了默认只需要多一点的填充就可以了,要做出自定义的样式还有很多工作要做。

有没有简单的改变,比如设置微调的一些属性? 我已经尝试将微调types设置为对话框,但它只是显示具有相同的间距量的列表,只是没有附加到微调控件。

Solutions Collecting From Web of "在没有自定义样式的Android Spinner中的项目之间添加更多空间?"

我相信Pragnani的回答是正确的,但这是我实际上实现它的方式…

在RES /布局中,创build一个只包含textview的XML布局,如下所示。 这个textview有我想要的自定义大小/填充。

spinner_row.xml

<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/cust_view" android:minWidth="246dp" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="left|center_vertical" android:textColor="@android:color/black" android:textSize="20sp" android:paddingLeft="4dp" android:textIsSelectable="false"/> 

然后在我将数据加载到微调器的活动中,当为我的微调器创build一个ArrayAdapter时,我将自定义的textview作为第二个parameter passing给ArrayAdapter构造函数。

 Spinner spinClockInWorkSite = (Spinner)findViewById(R.id.spinClockInWorkSite); ArrayAdapter spinClockInWorkSiteAdapter = new ArrayAdapter(this, R.layout.spinner_row, this.workSiteList); spinClockInWorkSite.setAdapter(spinClockInWorkSiteAdapter); 

所以现在微调使用我在spinner_row.xml中为列表中的每个项目定义的自定义文本视图。

这最终比我更喜欢玩这种风格。

如果你想给予满意的空间,那么相反,如果所有这些XML和所有,你可以轻松地使用“简单_spinner_dropdown_item”在微调适配器。

喜欢

 String [] dataList = new String[]{"Select","A","B","C","D","E"}; ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, dataList); spinner.setAdapter(dataAdapter); 

它为我工作。

试试这个,在这里你并没有改变微调器的样式,而是通过设置微调器项目的样式来为你的微调器项目添加额外的function。

 <style name="spinnerStyle" parent="@android:style/Widget.TextView.SpinnerItem"> <item name="android:padding">5sp</item> </style> 

使用风格属性将风格应用到你的微调

  style="@style/spinnerStyle" 

您可以使用填充,边距或layoutMargin来影响间距。

将此(或类似)添加到您的微调器:

 android:padding="10sp"