Добавить больше пространства между элементами в 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