Pergunta

Eu sou um novato no Android tentando aprender o lado da interface do usuário e está fazendo minha cabeça. Aqui está o que tenho agora:

raça_listing.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content">
    <ListView android:id="@+id/breedsListView"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:dividerHeight="0px" android:divider="#00000000"></ListView>
</LinearLayout>

raça_listing_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:background="@drawable/list_item_background"
    android:orientation="horizontal" >
    <TextView android:id="@+id/allbreeds_single_item"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:gravity="center_horizontal"></TextView>
</LinearLayout>

list_item_background.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#043402" />
    <stroke android:width="3dp" color="#ffff8080" />
    <corners android:radius="8dp" />
    <padding android:left="10dp" android:top="10dp" android:right="10dp"
        android:bottom="10dp" />
</shape>

O que estou lutando para descobrir é como faço para estilizar o item selecionado? No momento, o item selecionado possui um fundo laranja horrível que, sob o retângulo verde arredondado, fornece um efeito de contorno laranja. Tenho certeza de que não fiz as coisas alinhadas com as melhores práticas, para que quaisquer sugestões ou melhorias fossem muito apreciadas.

Muito obrigado, D.

Foi útil?

Solução

Eu faço isso :

 <selector xmlns:android="http://schemas.android.com/apk/res/android">

   <item android:state_pressed="true">
       <shape  >
         <solid android:color="#929292" />
       </shape>
   </item>



   <item>
     <shape  >
        <solid android:color="#FFFFFF" />
     </shape>
   </item>

 </selector>

Então você pode usar esta propriedade android:state_pressed="true"

No meu exemplo, o fundo da célula só será branco e cinza quando pressionado.

Espero que ajude!

Outras dicas

Você tem que usar um Statelistdrawable.

Você pode encontrar um exemplo para itens da ListView aqui.

Se você deseja uma certa cor/desenhado quando o item for selecionado, use android:state_focused="true".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top