2015-05-29 15 views
7

Ho un TextView che viene utilizzato come pulsante. Voglio aggiungere l'attributo selectableItemBackgroundBorderless per ottenere un effetto di increspatura circolare quando si preme. La disposizione è la seguente:selectableItemBackgroundBorderless per textview

android:id="@+id/create_button" 
android:layout_width="wrap_content" 
android:layout_height="54dp" 
... 
android:background="? android:attr/selectableItemBackgroundBorderless" 

Come risultato, anzi l'effetto a catena cerchio quando si preme, ma l'ondulazione esce dalla TextView, ma appena fuori dal fondo di TextView (perché la parte superiore del TextView è barra dell'azione).

La mia domanda è, perché l'effetto a catena attraversa il fondo della vista testo? Come sai, ho limitato android:layout_height a 54dp. Perché questa limitazione è inutile?

risposta

16

È necessario utilizzare ?android:attr/selectableItemBackground per mantenere l'effetto a catena all'interno dei limiti View.

?android:attr/selectableItemBackgroundBorderless consente di uscire dall'area View.

+1

Sì, ma come ottenere cerchio effetto a catena? Proprio come il pulsante della barra delle azioni che preme l'effetto. – Vincent

+0

Dovresti averlo se esegui la tua applicazione su Android 5.0+. –

+0

Sono in esecuzione su Android 5.1. Ma la rippa esce dal testo dal basso. – Vincent

1

1.To limitare l'effetto a catena all'interno della vista unica è necessario specificare

android:background="?attr/selectableItemBackground" 

all'interno della vista.

2.Per rendere meno efficace il bordo di ripple, mostrare l'effetto di increspatura nell'intero layout è possibile utilizzare questo. più

android:background="?attr/selectableItemBackgroundBorderless" 

3.Per è possibile controllare il collegamento Defining Custom Animation