I have listview with some text. I want to show images on swipe action (almost like in gmail app). For example, if I swipe from left to right - my list item is moving right, and image is sliding from the left. My list item can move right no more than image width. After swipe stops, list item is moving to start position. How could I make such thing?
質問する
7101 次
3 に答える
1
それを行うライブラリは見つかりませんでしたが、自分で作るのは難しくありません。Nick がandroid-swipetodismissを見て指摘したように、SwipeDismissListViewTouchListener.javaを見てください。
まず、あなたの子供のカスタムView
を作成する必要があります。テキストを含む別の が重なっているListView
が必要になります。ImageView
View
次に、onTouch()
リスナーを に追加しますListView
。(ジェスチャMotionEvent.ACTION_DOWN
を開始するとき) で、タッチ座標を取得し、タッチしている子を計算しListView
ます。次に例を示します。
int[] listViewCoords = new int[2];
mListView.getLocationOnScreen(listViewCoords);
int x = (int) motionEvent.getRawX() - listViewCoords[0];
int y = (int) motionEvent.getRawY() - listViewCoords[1];
View child;
for (int i = 0; i < childCount; i++) {
child = mListView.getChildAt(i);
child.getHitRect(rect);
if (rect.contains(x, y)) {
mDownView = child;
break;
}
}
タッチした点と現在の座標のMotionEvent.ACTION_MOVE
間の X 座標の差を測定すると、次のようになります。MotionEvent.ACTION_DOWN
float deltaX = motionEvent.getRawX() - mDownX;
View
したがって、テキストを含むを翻訳して、ImageView
が明らかになるようにします。
mDownView.setTranslationX(deltaX);
指を離すと、セットmDownView .setTranslationX(0)
したばかりで、画像が再び覆われます。これは単なるガイドです。カバーされていない詳細がいくつかありますが、これで開始できるはずです。
于 2014-12-29T19:24:28.263 に答える