Trong iOS, có một phương tiện rất dễ dàng và mạnh mẽ để tạo hiệu ứng cho việc thêm và xóa các hàng UITableView, đây là clip từ video youtube hiển thị hình động mặc định. Lưu ý cách các hàng xung quanh thu gọn vào hàng đã xóa. Hoạt hình này giúp người dùng theo dõi những gì đã thay đổi trong danh sách và nơi trong danh sách họ đang xem khi dữ liệu thay đổi.
Vì tôi đã phát triển trên Android nên tôi không tìm thấy cơ sở tương đương nào để tạo hiệu ứng cho các hàng riêng lẻ trong TableView . Gọi notifyDataSetChanged()
Bộ điều hợp của tôi khiến ListView cập nhật ngay nội dung của nó với thông tin mới. Tôi muốn hiển thị một hình ảnh động đơn giản của một hàng mới đẩy vào hoặc trượt ra khi dữ liệu thay đổi, nhưng tôi không thể tìm thấy bất kỳ cách nào được làm tài liệu để làm điều này. Có vẻ như LayoutAnimationContoder có thể giữ một khóa để làm việc này, nhưng khi tôi đặt LayoutAnimationContoder trên ListView của tôi (tương tự như LayoutAnimation2 của ApiDemo ) và xóa các phần tử khỏi bộ điều hợp của tôi sau khi danh sách được hiển thị, các phần tử sẽ biến mất ngay lập tức .
Tôi cũng đã thử những thứ như sau để làm động một vật phẩm riêng lẻ khi nó bị xóa:
@Override
protected void onListItemClick(ListView l, View v, final int position, long id) {
Animation animation = new ScaleAnimation(1, 1, 1, 0);
animation.setDuration(100);
getListView().getChildAt(position).startAnimation(animation);
l.postDelayed(new Runnable() {
public void run() {
mStringList.remove(position);
mAdapter.notifyDataSetChanged();
}
}, 100);
}
Tuy nhiên, các hàng xung quanh hàng hoạt hình không di chuyển vị trí cho đến khi chúng nhảy đến vị trí mới khi notifyDataSetChanged()
được gọi. Có vẻ như ListView không cập nhật bố cục của nó một khi các yếu tố của nó đã được đặt.
Trong khi viết triển khai / ngã ba ListView của riêng tôi đã vượt qua tâm trí tôi, điều này có vẻ như là một điều không nên quá khó khăn.
Cảm ơn!