#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 в зависимости от того, видно ли уже представление.
Надеюсь, это поможет!