2011-04-28 34 views

Respuesta

14

Me encontré con esto y esto es lo que se me ocurrió. En su diseño, establecer el fondo a un recurso dibujable:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/clickable_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/clickable"> 
... 
</LinearLayout> 

Luego, en dibujable, añadir clickable.xml como tan:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" 
    android:drawable="@android:drawable/list_selector_background" />  
</selector> 

Luego le toca a usted si desea agregar una haga clic en controlador en su actividad.

0

Puede establecer todos los elementos dentro del diseño seleccionables = falso. Luego, debe imitar el comportamiento de selección al establecer el fondo de diseño en algún color y configurar todos los demás con fondo transparente cuando se hace clic en un diseño. Puede usar la identificación de diseño como índice para saber qué diseño se selecciona.

25

prefiero una manera más sencilla:

<LinearLayout android:orientation="vertical" 
       android:id="@+id/layoutIdentifier" 
       android:clickable="true" 
       android:background="?android:attr/selectableItemBackground" 

       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <!-- put views here --> 
</LinearLayout> 

No se puede cambiar el fondo presionado por el estado de esta manera, pero a veces no es realmente necesario.

Cuestiones relacionadas