Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Fondo del selector predeterminado en Vistas con clic

Tengo algunas vistas clickable y quiero fijar el fondo disponible del defecto que está presente en el tecleo de la lista (en ICS es un color azul). He intentado poner como fondo esto:

android:background="@android:drawable/list_selector_background" 

Pero no es el azul por defecto que tengo por defecto (el que he usado es naranja). ¿Cuál es el drawable utilizado por defecto en android como el selector de clics?

Gracias

7 Solutions collect form web for “Fondo del selector predeterminado en Vistas con clic”

Es list_selector_holo_dark o la versión equivalente holo light; Y estos son los valores por defecto en Honeycomb y superiores. list_selector_background es la versión no-holo, usada en Gingerbread y abajo.

EDIT : Creo (pero no puedo confirmar) que el selector agnóstico plataforma es ?android:attr/listSelector

Esto funciona para mí:

 android:background="?android:attr/selectableItemBackground" 

Si está utilizando appcompat-v7 , sólo puede utilizar ?attr/selectableItemBackground .

Hay una manera de combinar todas las respuestas válidas:

Defina un atributo (por ejemplo, en valores / attrs.xml):

 <attr name="clickableItemBackground" format="reference"/> 

En la sección de tema dependiente de la plataforma (por ejemplo, en valores / styles.xml o values ​​/ themes.xml) declare esto:

 <style name="Theme.Platform" parent="@android:style/Theme.Whatever"> <item name="clickableItemBackground">@android:drawable/list_selector_background</item> </style> 

En la sección de tema dependiente de la plataforma para api-11 + (por ejemplo, en valores-v11 / styles.xml o valores-v11 / themes.xml) declare esto:

 <style name="Theme.Platform" parent="@android:style/Theme.Holo.Whatever"> <item name="clickableItemBackground">?android:attr/selectableItemBackground</item> </style> 

A continuación, utilice ?attr/clickableItemBackground donde sea necesario.

Una solución similar a la respuesta de flx, pero sin definición de atributo adicional.

Estilo independiente de plataforma utilizado para dispositivos pre-Holo (en res\values\styles.xml ):

 <style name="SelectableItem"> <item name="android:background">@android:drawable/list_selector_background</item> </style> 

Estilo para dispositivos Holo (Nivel API 14+) (en res\values-v14\styles.xml ):

 <style name="SelectableItem"> <item name="android:background">?android:attr/selectableItemBackground</item> </style> 

Aplicar estilo a la vista necesaria, por ejemplo, LinearLayout :

 <LinearLayout style="@style/SelectableItem" android:layout_width="match_parent" android:layout_height="wrap_content"> ... </LinearLayout> 

Alternativamente,

 android:background="?android:attr/listChoiceBackgroundIndicator 

Si sólo desea que los elementos para resaltar azul (o lo que es el valor predeterminado actual) mientras se hace clic.

Esto funciona bien en api 11 y superior. Pero como se ha señalado, no funcionará en las versiones anteriores.

 android:background="?android:attr/selectableItemBackground" 

Aquí hay una solución para que se ejecute en todas las versiones que ejecutan android.

  1. Agregue los colores apropiados dentro del colors.xml que se encuentra dentro de su carpeta de valores. Debe aparecer como tal:

     <color name="white">#ffffff</color> <color name="blue">#7ecce8</color> 
  2. Cree un archivo selector xml. Aquí lo llamé button_selection.xml

     <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/blue"/> <!--pressed --> <item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused --> <item android:drawable="@color/white"/> <!-- default --> </selector> 
  3. Vaya a su vista o botón y establezca el button_selection.xml recién creado como su fondo.

     android:background="@drawable/button_selection" 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.