SORU
13 EKİM 2010, ÇARŞAMBA


Nasıl Yanı ya da Android Liste Görünümü Satır Temizleme Animasyon

İOS, UİTableView satır eklenmesi ve kaldırılması, here's a clip from a youtube video varsayılan animasyon gösteren animasyon çok kolay ve güçlü bir tesis var. Not nasıl çevreleyen silinen satır satır üzerine çökmesi. Bu animasyon kullanıcıların bir listede neyin değiştiğini ve listedeki verileri değişti bakıyorlardı nerede izlemenize yardımcı olur.

Android geliştirmeye başladığımdan beri hiçbir eşdeğer tesisi TableView tek satır animasyon buldum. Benim Adaptör notifyDataSetChanged() arama liste Görünümü hemen içeriğini güncellemek için yeni bilgiler ortaya çıkar. Yeni bir satır veya veriler değiştiğinde sürgülü dışarı iterek basit bir animasyon göstermek istiyorum, ama bunu yapmak için hiçbir belgelenmiş bir yol bulamıyorum. Göründüğü gibi LayoutAnimationController belki bir anahtar başlarken bu işe, ama ne zaman bir dizi LayoutAnimationController benim Liste Görünümü (benzer ApiDemo's LayoutAnimation2) ve kaldırma elemanları benim adaptör sonra liste görüntülenir, bu unsurları ortadan hemen yerine elde animasyon.

Ayrıca kaldırıldığında, tek bir öğe animasyon aşağıdaki gibi bir şey denedim:

@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);
}

Ancak, satır çizgi, satır çevreleyen notifyDataSetChanged() çağrıldığında yeni konumlarına onlar atlamak kadar pozisyona hareket etmiyor. Liste Görünümü öğeleri yerleştirildikten sonra kendi düzenini güncelleme yok gibi görünüyor.

Liste Görünümü kendi uygulama/çatalımı yazarken aklımdan geçti, bu yüzden bu kadar zor olmaması gereken bir şey gibi görünüyor.

Teşekkürler!

CEVAP
28 Temmuz 2011, PERŞEMBE


Animation anim = AnimationUtils.loadAnimation(
                     GoTransitApp.this, android.R.anim.slide_out_right
                 );
anim.setDuration(500);
listView.getChildAt(index).startAnimation(anim );

new Handler().postDelayed(new Runnable() {

    public void run() {

        FavouritesManager.getInstance().remove(
            FavouritesManager.getInstance().getTripManagerAtIndex(index)
        );
        populateList();
        adapter.notifyDataSetChanged();

    }

}, anim.getDuration());

-tepeden inme animasyon kullanın :

<set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate android:fromYDelta="20%p" android:toYDelta="-20"
            android:duration="@android:integer/config_mediumAnimTime"/>
        <alpha android:fromAlpha="0.0" android:toAlpha="1.0"
            android:duration="@android:integer/config_mediumAnimTime" />
</set>

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 30GB

    30GB

    14 AĞUSTOS 2006
  • aki6336

    aki6336

    14 AĞUSTOS 2008
  • gadgetgal38

    gadgetgal38

    9 HAZİRAN 2009