2016-08-27 4 views
0

listviewTranslateAnimationを追加すると、たとえば、リストビューを上に移動して最後にそのパフォーマンスを維持すると、リストビューはアニメーション化されます。ただし、問題はlistviewタッチイベントを正しく処理できません。ListViewはTranslateAnimationをうまく処理できません

item1をタッチすると、item2が選択され、item2's onClick()メソッドが起動されます。ビューが移動したが、タッチイベントがビューの最後の位置に関連しているようなものです。

私は次のように私のコードを示した:

listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,dd)); 

    Animation animation=new TranslateAnimation(0,0,0,-height*3); 
    animation.setDuration(500); 
    animation.setInterpolator(new AccelerateDecelerateInterpolator()); 
    animation.setFillAfter(true); 
    listView.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 
      Toast.makeText(MainActivity.this, position+"", 0).show(); 
     } 
    }); 

を私はリストビューをアニメーション化するView.animate().translateY()を使用すると、アイテムがcorrectly.Theだけshorcomingタッチイベントを処理することができますが、この方法は、API 11でサポートされていることです私はAPI 8を使っています。

誰かがもっと賢明な解決策を持っている場合は、私を助けてください。ありがとう。

答えて

0

私はすでにあなたがビューを移動するアニメーションを使用answer.Ifを発見し、閲覧者の位置は、実際にはそれが何を見ることはそれが何であるか、実際にはないことを原因とキャンバスのmatrix.Soを更新move.Itません。ビューに触れたい場合は、間違った位置に触れていることがわかります。

関連する問題