Quero adicionar uma altura personalizada ao menu suspenso de a Spinner
, digamos 30dp, e quero ocultar os divisores da lista suspensa de Spinner
.
Até agora, tentei implementar o seguinte estilo no Spinner
:
<style name="spinner_style">
<item name="android:paddingLeft">0dp</item>
<item name="android:dropDownWidth">533dp</item>
<item name="android:showDividers">none</item>
<item name="android:dividerHeight">0dp</item>
<item name="android:popupBackground">@drawable/new_bg</item>
<item name="android:dropDownHeight">70dp</item>
<item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
<item name="android:dropDownSelector">@android:color/white</item>
</style>
e o código do meu spinner é:
<Spinner
android:id="@+id/pioedittxt5"
android:layout_width="543dp"
android:layout_height="63dp"
android:layout_toRightOf="@+id/piotxt5"
android:background="@drawable/spinner"
style="@style/spinner_style"
android:dropDownVerticalOffset="-53dp"
android:spinnerMode="dropdown"
android:drawSelectorOnTop="true"
android:entries="@array/travelreasons"
android:prompt="@string/prompt" />
Mas nada parece estar funcionando.
Respostas:
Crie um adaptador personalizado com um layout personalizado para o seu spinner.
R.layout.simple_spinner_item
R.layout.simple_spinner_dropdown_item
Nos estilos, adicione suas dimensões e altura personalizadas conforme sua exigência.
fonte
<item name="android:height">
para<item name="android:layout_height">
android:id="@+android:id/text1"
no arquivo simple_spinner_dropdown_item.xml?Você pode criar um design giratório totalmente personalizado, como
Etapa 1: Na pasta drawable, crie background.xml para uma borda do botão giratório.
Etapa 2: para o layout do spinner, use este ícone suspenso ou qualquer imagem drop.png
Finalmente, parece com a imagem abaixo e é possível clicá-lo em toda parte na área redonda e não há necessidade de escrever, clique em Lister para imageView.
Etapa 3: para o design suspenso, remova a linha do DropView ListView e altere a cor do plano de fundo, crie um adaptador personalizado como
Na pasta de layout, crie R.layout.spinner_text.xml
Na pasta de layout, crie simple_spinner_dropdown.xml
Nos estilos, você pode adicionar dimensões e altura personalizadas conforme sua exigência.
Finalmente parece
De acordo com o requisito, você pode alterar a cor do plano de fundo e o texto da cor suspensa alterando a cor do plano de fundo ou do texto de simple_spinner_dropdown.xml
fonte
A solução mais elegante e flexível que encontrei até agora está aqui: http://android-er.blogspot.sg/2010/12/custom-arrayadapter-for-spinner-with.html
Basicamente, siga estas etapas:
Crie uma classe de visualização customizada para o seu adaptador suspenso. Nesta classe personalizada, você precisa sobrescrever e definir seu layout de item suspenso personalizado nos métodos getView () e getDropdownView (). Meu código é como abaixo:
Em sua atividade ou fragmento, use o adaptador personalizado para sua visualização giratória. Algo assim:
onde options é a lista da sequência do item suspenso.
fonte
Tente isto
Eu estava enfrentando muitos problemas quando estava tentando outra solução ...... Depois de muita pesquisa e desenvolvimento, agora eu tenho solução
crie custom_spinner.xml na pasta de layout e cole este código
na sua atividade
crie uma nova classe de adaptador
fonte
Isso funcionou para mim:
e na minha pasta de layout eu criei
simple_spinner_item
:fonte
Eu criei um pequeno projeto de demonstração sobre isso. Você pode dar uma olhada nele. Link to project
fonte