2014-05-15 3 views
0

1.) видна сплошная линия белого слоя & невидимая на строке.
2.) на анимации двойного нажатия работает в моем приложении.
Анимация с двойным щелчком работает нормально в моем приложении. На одном красном уровне видна и невидима при следующем одиночном щелчке, но моя проблема заключается в том, что когда я делаю один кран, чем отображается слой, но после этого, если я дважды нажимаю на строку, чем мой список, не имеет значения, даже я не могу сделать один клик после что.
Я хочу реализовать одиночный и двойной кран на listview

int i = 0; 

adapter = new MyAdapter(this, datas); 
    lv.setAdapter(adapter); 

    // load the animation 
    animRotate = AnimationUtils.loadAnimation(getApplicationContext(), 
      R.anim.rotate); 
    animFadeOut = AnimationUtils.loadAnimation(getApplicationContext(), 
      R.anim.fade_out); 
    // set animation listener 
    animRotate.setAnimationListener(this); 
    animFadeOut.setAnimationListener(this); 
} 

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) { 

    if (!isAnimationRunning) { 
     roundLogo = (ImageView) v.getTag(R.id.picture_ImageView_logoround); 
     animLogo = (ImageView) v.getTag(R.id.picture_ImageView_logo); 
     i++; 
     Runnable runnable = new Runnable() { 
      @Override 
      public void run() { 
       if (i == 1) { 
        i = 0; 
        if (adapter.isVisible()) { 
         // layer invisible 
        } else { 
         // layer visible 

        } 
       } 
      } 
     }; 

     if (i == 1) { 
      handler.postDelayed(runnable, 200); 
     } else if (i == 2 && !adapter.isVisible) { 
      handler.removeCallbacks(runnable); 
      i = 0; 
     // ANIMATION CODE HERE IT WORKS FINE 

     } 
    } 
} 

ответ

1

Я уверен, но я думаю, что модифицированная версия ниже фрагмент кода может быть принят.

protected void onListItemClick(ListView l, View v, int position, long id) 
    { 
    long timeNow=Calendar.getInstance().getTimeInMilis(); 
    long timeLastTapped=Long.valueOf(view.getTag); // Initially set to zero in adapter 
    final int minDurationBetweenDoubleTap=500; 
    if(timeLastTapped != 0) 
    if(timeNow- timeLastTapped < minDurationBetweenDoubleTap) // 
    { 
    //Double Tapped===> Do your stuff here 
    } 
    view.setTag(""+timeNow);  
    }; 
Смежные вопросы