有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Android Spinner中添加更多项目间空间,而无需自定义样式?

我有一个Android应用程序,我正在为一家具体的公司编写,它将用于打卡。我使用了一些微调器从下拉列表中选择工作地点和工作,但我担心微调器中的项目太近,员工很难选择正确的项目

我想在微调器中的项目之间留出更多的空间,但不想经历所有定制样式的麻烦,因为我真的希望微调器的外观和行为与默认样式完全相同,只是有一点多余的填充,而仅仅为此定制样式需要做大量工作

我能做些简单的改变吗,比如设置微调器的一些属性?我尝试过将微调器类型设置为Dialog,但它只是以相同的间距显示列表,只是没有附加到微调器控件


共 (5) 个答案

  1. # 1 楼答案

    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, 
    ArrayList);
    
  2. # 2 楼答案

    试试这个, 在这里,您不是在更改微调器样式,而是通过设置微调器项目的样式来为微调器项目添加所需的额外功能

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

    并使用style attribue将样式应用于微调器

     style="@style/spinnerStyle"
    
  3. # 3 楼答案

    我相信普拉格纳尼的答案是正确的,但这就是我实际实现它的方式

    -在RES/layout中,创建了一个XML布局,其中只有一个文本视图,如下所示。这个文本视图有我想要的自定义大小/填充

    斯宾纳罗。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"/>
    

    然后在将数据加载到微调器的活动中,当我为微调器创建ArrayAdapter时,我将自定义textview作为第二个参数传递给ArrayAdapter构造函数

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

    现在微调器使用我在微调器_行中定义的自定义文本视图。列表中每个项目的xml

    这最终更直接地满足了我的需求,而不是玩弄风格

  4. # 4 楼答案

    如果您想给出令人满意的间距,那么如果所有这些XML, 您可以在微调器适配器中轻松使用“simple_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);
    

    这对我很管用

  5. # 5 楼答案

    除非你想要一个特别的间距,否则我会选择一个内置的布局

    simple_spinner_item = No line space.
    simple_spinner_dropdown_item = 1 line space.
    simple_dropdown_item_1line = 1.5 line space.
    

    这些和更多都可以在R类中找到