Как сделать список элементов spinner округленным? Не сам счетчик, а выпадающий список

#android #xml #spinner

#Android #xml #счетчик

Вопрос:

Я хочу отображать элементы счетчика в списке округленных прямоугольников, а не в прямоугольнике по умолчанию. Я имею в виду не сам счетчик, а список, который выпадает после нажатия стрелки. Есть ли способ сделать это? Попытка создать custom_rounded_layout и прикрепить к нему адаптер изменили расположение каждого элемента, а не сам список. Однако я хочу, чтобы округлялся сам список, а не элементы. Сейчас список используется по умолчанию. Я хочу сделать углы списка немного закругленными. Заранее спасибо

Ответ №1:

Создайте файл макета с закругленным фоновым текстовым представлением, например:

spinner_item.xml

 <?xml version="1.0" encoding="utf-8"?>


<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="@dimen/size_40"
    android:background="@drawable/bg_round"
    android:gravity="center_vertical"
    android:id="@ id/ssdsd"
    android:layout_margin="16dp"
    android:padding="10dp"
    android:text="@string/app_name" />
 

Теперь передайте это в адаптер счетчика

 Spinner spinner = findViewById(R.id.yourSpinner);
spinner.setAdapter(new ArrayAdapter<String(this,R.layout.spinner_item,R.id.ssdsd,list));
 

Чтобы изменить фон всплывающего окна, используйте это в своем XML-коде счетчика:

 
        android:popupBackground="@drawable/bg_round"
 

ПРИМЕЧАНИЕ: возможно, вам потребуется настроить отступы и поля, чтобы они выглядели хорошо, это просто представление о том, как вы можете это сделать.

Комментарии:

1. Спасибо, но это не работает для самого списка. После выбора элемента элемент отображается в специально разработанном макете. Но выпадающий список все тот же

2. Попробуйте заменить эту строку: spinner.setAdapter(new ArrayAdapter<String(this,R.layout.spinner_item,R.id.ssdsd,list)); На this: spinner.setAdapter(new ArrayAdapter<String(this,R.layout.spinner_item,list)); И посмотреть, работает это или нет

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

4. Хорошо, вы использовали закругленный фон в текстовом представлении? Эта строка: android:background="@drawable/bg_round" если да, какой цвет фона у этого объекта рисования, если он белый или прозрачный, попробуйте изменить цвет на черный или что-то в этом роде

5. . Список тот же, но элементы затронуты.