Анимация исчезновения Android для tablerow

#android #animation #invisible #fadein #fadeout

#Android #Анимация #невидимый #исчезновение

Вопрос:

У меня есть TableRow с TextView . Вот XML для нее.

 <TableRow
    android:layout_height="fill_parent" 
    android:layout_gravity="bottom"
    android:layout_width="fill_parent"
    android:background="#BF000000">

    <TextView
        android:id="@ id/topText"
        android:layout_height="wrap_content"
        android:textColor="#FFFFFF"
        android:textSize="19sp"
        android:background="#BF000000"
        android:layout_gravity="center_horizontal"
        android:text="@string/text_searchword"
        android:layout_width="fill_parent">
    </TextView>

</TableRow>
  

Я хочу сделать строку таблицы невидимой с эффектом затухания при нажатии кнопки и наоборот. Как я могу это сделать?

Комментарии:

1. Вот пример thegeekyland.blogspot.com/2015/12 /…

Ответ №1:

К любому из них View ( TableRow входит в комплект) может быть прикреплена анимация затухания, но вам нужно будет иметь возможность ссылаться на свой вид в коде, поэтому для строки потребуется идентификатор:

 <TableRow
  android:id="@ id/my_row"
  android:layout_height="fill_parent" 
  android:layout_gravity="bottom"
  android:layout_width="fill_parent"
  android:background="#BF000000">
  <TextView
    android:id="@ id/topText"
    android:layout_height="wrap_content"
    android:textColor="#FFFFFF"
    android:textSize="19sp"
    android:background="#BF000000"
    android:layout_gravity="center_horizontal"
    android:text="@string/text_searchword"
    android:layout_width="fill_parent">
  </TextView>
</TableRow>
  

Теперь вы можете ссылаться на саму строку в вашем Java-коде где-нибудь (например, onCreate() возможно) как

 View row = findViewById(R.id.my_row);
  

Обратите внимание, что я не использую ее как TableRow . Вы могли бы, если вам нужно, сделать с ней другие вещи, но для простой настройки видимости достаточно оставить ее в виде View . Затем просто создайте метод нажатия кнопки, подобный этому:

 public void onClick(View v) {
    View row = findViewById(R.id.myrow);
    if(row.getVisibility() == View.VISIBLE) {
        row.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_out));
        row.setVisibility(View.INVISIBLE);
    } else {
        row.startAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in));
        row.setVisibility(View.VISIBLE);
    }
}
  

Появление и исчезновение — это стандартные анимации, определенные в пакете Android, вам не нужно создавать их самостоятельно, просто загрузите их с помощью AnimationUtils.loadAnimation() . В этом примере нажатие на ту же кнопку просто переключает между fade in и fade out в зависимости от того, видно ли уже представление.

Надеюсь, это поможет!