2017-10-25 1 views
0

Ich habe folgendes CardView:Toggle Kind Textview innerhalb CardView basierend auf Sicht

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:onClick="expandCollapse"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:padding="20dp"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal"> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textSize="18sp" 
       android:text="Heading Goes Here" /> 
      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       app:srcCompat="@drawable/ic_action_down" /> 
     </LinearLayout> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:text="Description Goes Here" 
      android:visibility="gone" /> 
    </LinearLayout> 
</android.support.v7.widget.CardView> 

Nun gibt es viele dieser cardviews, so möchte ich meine expandCollapse Funktion Arbeit mit allen von ihnen machen.

Also im Grunde, wenn die CardView geklickt wird, möchte ich es den Description Goes HereTextView abhängig von seiner aktuellen Sichtbarkeit ein- oder auszublenden. Es wird entweder GONE oder VISIBLE sein. Ich möchte auch, dass es den ImageView Pfeil basierend auf der aktuellen Sichtbarkeit ändert.

Grundsätzlich möchte ich nur diese Karte zu erweitern/reduzieren Sie die Textansicht darin. Ich weiß, wie das geht, aber ich weiß nicht, wie ich das Kind TextView dynamisch innerhalb meiner Funktion auswähle.

Wie genau wähle ich diese TextView, wenn die Karte geklickt wird, wenn man bedenkt Ich werde nicht ein id dafür werden die Angabe, da ich dies mit vielen verschiedenen CardView genau das gleiche Layout arbeiten wollen mit?

Antwort

0

Ich fand es heraus.

Ich habe einfach einen Tag in die Textview mit android:tag="desc"

Dann habe ich TextView textView = view.findViewWithTag("desc"); in meiner onClick Funktion.

Verwandte Themen