Любой 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
. Вы могли бы, если вам нужно сделать с ним что-то другое, но просто установить видимость, оставив его как вид, вполне подойдет. Затем просто создайте метод нажатия кнопки следующим образом:
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);
}
}
Fade in и Fade out - стандартные анимации, определенные в пакете Android, вам не нужно создавать их самостоятельно, просто загрузите их, используя AnimationUtils.loadAnimation()
. В этом примере нажатие на одну и ту же кнопку просто переключает между постепенным появлением и постепенным исчезновением в зависимости от того, является ли представление уже видимым.
Надеюсь, что поможет!