Intereting Posts
Получите профиль видеопотока MPEG-4 программно на Android Параметры внешней камеры Android – наложение поверх видеопотока, отсутствие промежуточного сервера / маршрутизатора Пример полнотекстового поиска в Android Пользовательский селектор для фона списка Разница между ContentObserver и DatasetObserver? Ошибка: не удалось инициализировать класс com.android.ide.common.util.ReadWriteProcessLock после обновления до AS 2.4 Могу ли я использовать layout_weight для размещения RelativeLayout? OnPageStart вызывается много раз, а onPageFinished не вызывается для одной страницы Примеры пользовательского интерфейса Android Android BLE неожиданно и неоднократно подключается к периферийным устройствам Разница между основной нитью и потоком пользовательского интерфейса Как я могу сделать свой Android SwipeableCardView больше похожим на почтовое приложение IOS 7 (проведите по экрану, чтобы показать кнопки) Java MimetypesFileTypeMap всегда возвращает приложение / октет-поток на эмулятор Android Android два AsyncTasks серийно или параллельно? – Вторая заморозка, но результат в порядке Позвонить по телефону нажмите на кнопку

Верхняя / нижняя прокладка для Spinner

Как указать для счетчика в Android дополнительное дополнение в верхней / нижней части первого / последнего элемента? См. Пример Goolge ниже (интервал 8 dp). Простое меню Google

Solutions Collecting From Web of "Верхняя / нижняя прокладка для Spinner"

Spinner не поддерживает несколько типов просмотров. Проблема .

Я предложил вам использовать диалог для отображения вашего списка.

отредактированный

В соответствии с вашим комментарием разрешена ваша проблема с этим вопросом

Вам нужно создать пользовательский адаптер для Spinner используя свой собственный макет. Таким образом, вам просто нужно предоставить макет с соответствующими полями / paddins.

 Spinner spinner = (Spinner) findViewById(R.id.myspinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.data, R.layout.spinner_item); adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); spinner.setAdapter(adapter); 

Здесь вы можете найти действительный пример.

Просто создайте отдельный макет для элементов, которые вы хотите отобразить на счетчике.

Что-то вроде этого

spinner_text_view.xml

 <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/customTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="15dp" android:text="@string/sample_list_item" android:textColor="@android:color/black" android:textSize="20sp" /> 

Затем в вашей активности / фрагменте вы можете создать адаптер (в этом случае адаптер массива будет простым) и передать этот макет в эту ссылку на адаптер. Наконец, установите этот адаптер на счетчик, и вы получите желаемый результат.

Образец кода.

 private void setupSpinner() { String[] sampleSpinnerItems = {"One", "Two", "Three", "Four", "Five"}; ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, R.layout.spinner_text_view, sampleSpinnerItems); sampleSpinner.setAdapter(spinnerAdapter); } 

Надеюсь это поможет.

Примечание: spinner_text_view – это файл макета, который вы создали ранее.

Для этого и пользовательских макетов вам нужен специальный адаптер. Вы можете использовать 2 макета. Предположим, что у вас есть n элементов для отображения, в вашем счетчике у вас будет n + 2. IF позиция равна 0 (первый элемент) или последний элемент, который вы покажете пустой макет, иначе вы покажете другой макет. Пустой макет, который вы будете использовать для создания этого пространства

Вы можете выполнить это, используя пользовательский Adapter для Spinner . Это будет выглядеть так:

 class YourAdapter extends BaseArrayAdapter<YourObject> { @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.your_item, parent, false); DropDownViewHolder holder = new DropDownViewHolder(); holder.root = convertView.findViewById(R.id.drop_down_root); // other assignments etc. convertView.setTag(holder); } DropDownViewHolder holder = (DropDownViewHolder) convertView.getTag(); int bottomPadding = 0; int topPadding = 0; if (position == 0) { topPadding = getContext().getResources().getDimensionPixelSize(R.dimen.margin_8); } else if (position == (getCount() - 1)) { bottomPadding = getContext().getResources().getDimensionPixelSize(R.dimen.margin_8); } holder.root.setPadding(0, topPadding, 0, bottomPadding); // other UI related logic etc. return convertView; } // ... public static class DropDownViewHolder { View root; // other views } } 

На самом деле логика с настройкой дополнительной прокладки может быть изменена для изменения видимости VISIBLE до VISIBLE или раздувания другого макета в зависимости от положения, но решение с дополнением кажется мне более естественным.