Добавить больше пространства между элементами в Android Spinner без специального стиля?

У меня есть приложение для Android, которое я пишу для компании Concrete, которая будет использоваться для синхронизации и выхода. Я использовал некоторые прядильщики, чтобы выбирать такие вещи, как "Рабочий сайт и работа" из раскрывающихся списков, но я беспокоюсь, что элементы в прядильщиках слишком близки друг к другу, и сотрудникам будет сложно выбрать правильный предмет.

Я хотел бы дать немного больше пространства между элементами в spinner, но не хочу, чтобы все проблемы с созданием пользовательского стиля, потому что на самом деле я хочу, чтобы spinner выглядел и вел себя точно так же, как и по умолчанию, кроме просто имея немного больше отступов, и для этого нужно много работы, чтобы создать свой собственный стиль.

Есть ли какие-либо простые изменения, которые я могу сделать, например, установить какое-то свойство счетчика? Я попытался установить тип spinner для Dialog, но он просто показывает список с таким же количеством интервалов, но не привязан к элементу управления прядильщиком.

Ответ 1

Я верю, что прагматинский ответ правильный, но вот как я его реально реализовал...

-In RES/layout, созданный XML-макет с просто текстовым представлением в нем, как показано ниже. Это текстовое представление имеет пользовательский размер/дополнение, которое я хочу.

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"/>

Затем в том случае, когда я загружаю свои данные в spinner, когда я создаю ArrayAdapter для моего счетчика, я передаю пользовательское текстовое представление в качестве второго параметра в конструктор ArrayAdapter.

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

Итак, теперь spinner использует мой пользовательский текст, определенный в spinner_row.xml для каждого элемента в списке.

Это оказалось более прямолинейным для моих потребностей, чем игра со стилем.

Ответ 2

Если вы хотите дать удовлетворительный интервал, вместо этого, если все эти XML и все, вы можете легко использовать "simple_spinner_dropdown_item" в адаптере spinner.

подобно

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

Это сработало для меня.

Ответ 3

Попробуйте это, здесь вы не меняете стиль прядильщика, но добавляете дополнительную функцию, которую хотите для своих элементов прядильщика, установив стиль для Spinner Item.

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

И примените стиль к вашему счетчику, используя атрибут стиля

 style="@style/spinnerStyle"

Ответ 4

adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, 
ArrayList);

Ответ 5

Если вам не нужен действительно конкретный интервал, я бы выбрал один из встроенных макетов.

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

Это и многое другое можно найти в R.class