2016-09-28 63 views
0

我有RecyclerView哪個項目包含ImageView1,TextView1,TextView2,ImageView2。我希望當應用程序運行時,textView2無限制地有一個動畫slideInLeft,對於recyclerView的每個項目,當您向下滾動並返回到某個項目時,動畫將重新開始。如何動畫只有一個字段的回收站查看項目

TextView在XML中看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:textColor="@color/slideingText" 
      android:textSize="18sp" 
      android:layout_weight="2" 
      android:layout_marginRight="3dp" 
      android:text="this is some other text if you need this to be done you have to do it yourself" 
      android:layout_gravity="center" 
      android:singleLine="true" 
      android:focusable="true" 
      android:textStyle="bold" 
      android:focusableInTouchMode="true" 
      android:marqueeRepeatLimit="marquee_forever" 
      android:ellipsize="marquee" 
      android:gravity="center" 
      android:scrollHorizontally="true" 
      android:id="@+id/currentShowTitle"/> 

在我RecyclerVew適配器我做了這樣的事情:

setAnimation(holder.currentShowTitle,position); 

其中

private void setAnimation(View viewToAnimate, int position) 
    { 
     if (position > lastPosition) 
     { 
      Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left); 
      viewToAnimate.startAnimation(animation); 
      lastPosition = position; 
     } 
    } 

我也用

@Override 
    public void onViewDetachedFromWindow(ChannelsViewHolder holder) { 
     super.onViewDetachedFromWindow(holder); 
     ((ChannelsViewHolder)holder).clearAnimation(); 
    } 

問題是,當應用程序運行時,它動畫,因爲我只想要第一個項目,當我向下滾動並回來時,動畫不會再次開始。 有誰知道如何做到這一點?

回答

0

試着打電話給你的方法:

public void onBindViewHolder(mAdapter.MyViewHolder holder, int position) 
{ 
setAnimation(//pass parameters(position etc...)); 
} 
0

OnBindViewHolder寫下面的代碼

if (position == 0) { 
    holder.yourView.startAnimation(Your_animation); 
} 
0

如果您希望在滾動每次動畫。刪除您保存的位置檢查以存儲最後一個位置,並在這裏:

private void setAnimation(View viewToAnimate, int position) 
{ 

     Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.slide_in_left); 
     viewToAnimate.startAnimation(animation); 

} 
相關問題