2016-03-03 32 views
6

Mam kilka TextView s, które są wyświetlane obok siebie. Obecnie używam android:background="?attr/selectableItemBackground", aby uzyskać falowanie w dotyku.Ripples z obramowaniem dla TextView?

Teraz chciałbym dodać granice do TextView s, gdy nie są one naciskane i mają tętnienia, gdy dotknie się TextView. Jak mogę to zrobić?

Odpowiedz

10

oparta na Styling Android blog post:

Inny sposób, że możemy ograniczyć granice okrężnego animacji jest właściwie zdefiniować kształt rozciągliwej jako dziecko

<ripple xmlns:android="http://schemas.android.com/apk/res/android" 
    android:color="?android:colorControlHighlight"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@android:color/white" /> 
      <stroke 
       android:color="@color/card_set_bg_color" 
       android:width="1dp" /> 
     </shape> 
    </item> 
</ripple> 

Tutaj <solid> w <shape> jest potrzebne do ripple do renderowania. Jeśli ustawione na transparent lub pominięte, marszczyć nie renderuje. Marszczyć potrzebuje solidnego tła do renderowania. TextView s nie mają koloru tła, dlatego musimy podać <solid>.

+1

Bardzo genialne rozwiązanie i +1 dla odpowiedzi od pytającego. –