2015-04-04 41 views
1

嘿傢伙我試圖做一個淡出的動畫在我的Android列表應用程序。我有這樣的代碼列表視圖動畫淡出,然後添加新行

public void removeToDo(){ 
myItems.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
    @Override 
    public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) { 



     ObjectAnimator anim = ObjectAnimator.ofFloat(view, View.ALPHA, 0); 

     anim.addListener(new AnimatorListenerAdapter() { 
      @Override 
      public void onAnimationEnd(Animator animation) { 
       items.remove(position); 
       itemsAdapter.notifyDataSetChanged(); 
      } 
     }); 

     anim.start(); 

     return true; 
    } 
}); 

} 

耶其精美的淡出,但問題是,當我加入它重新使用已淡出該項目的行一個新的項目,因此結果是,我會在添加一個具有新行新項目,但沒有文字。

http://i.stack.imgur.com/o6wPz.jpg

請幫助我只是一個新手:)

回答

2

嘗試這種解決方案。 ObjectAnimator不可靠,請使用Animation而不是此。

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, final View view, final int position, long id) { 
       final Adapter adapter = (Adapter) parent.getAdapter(); 

       Animation fadeOut = new AlphaAnimation(1, 0); 
       fadeOut.setInterpolator(new AccelerateInterpolator()); 
       fadeOut.setDuration(500); 
       fadeOut.setAnimationListener(new Animation.AnimationListener() { 
        @Override 
        public void onAnimationStart(Animation animation) { 

        } 

        @Override 
        public void onAnimationEnd(Animation animation) { 
         adapter.pointItems.remove(position); 
         adapter.notifyDataSetChanged(); 
        } 

        @Override 
        public void onAnimationRepeat(Animation animation) { 

        } 
       }); 

       view.startAnimation(fadeOut); 

       return true; 
      } 
     }); 
+0

感謝他的工作。我也有一些意見,我可以在RecyclerView中使用它並使用ObjectAnimator? – 2015-04-04 18:07:51

+0

我只使用動畫並將其推薦給您。 – GIGAMOLE 2015-04-04 18:34:23

相關問題