SwipeMenuListView
をどのようにカスタマイズして追加できますか?SwipeMenuListViewのSwipeMenuItemに垂直に3つのアイコンを設定するにはどうすればいいですか?
ユーザーがリストビューから項目をスワイプすると、メニューに3つのアイコンが縦に表示され、3つのアイコンが表示されます。
いずれも同じことに役立ちますか?
ありがとうございます。あなたが任意の項目をスワイプするには、このクラスを使用することができます
SwipeMenuListView
をどのようにカスタマイズして追加できますか?SwipeMenuListViewのSwipeMenuItemに垂直に3つのアイコンを設定するにはどうすればいいですか?
ユーザーがリストビューから項目をスワイプすると、メニューに3つのアイコンが縦に表示され、3つのアイコンが表示されます。
いずれも同じことに役立ちますか?
ありがとうございます。あなたが任意の項目をスワイプするには、このクラスを使用することができます
この画像のように
...パブリッククラスSwipeDetectorがView.OnTouchListener {
private static final int MIN_DISTANCE = 300;
private static final int MIN_LOCK_DISTANCE = 30; // disallow motion intercept
private boolean motionInterceptDisallowed = false;
private float downX, upX;
private AudioObjectHolder holder;
private int position;
public SwipeDetector(AudioObjectHolder h, int pos) {
holder = h;
position = pos;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
downX = event.getX();
return true; // allow other events like Click to be processed
}
case MotionEvent.ACTION_MOVE: {
upX = event.getX();
float deltaX = downX - upX;
if (Math.abs(deltaX) > MIN_LOCK_DISTANCE && listView != null && !motionInterceptDisallowed) {
listView.requestDisallowInterceptTouchEvent(true);
motionInterceptDisallowed = true;
}
if (deltaX > 0) {
holder.deleteView.setVisibility(View.GONE);
} else {
// if first swiped left and then swiped right
holder.deleteView.setVisibility(View.VISIBLE);
}
swipe(-(int) deltaX);
return true;
}
case MotionEvent.ACTION_UP:
upX = event.getX();
float deltaX = upX - downX;
if (Math.abs(deltaX) > MIN_DISTANCE) {
// left or right
swipeRemove();
} else {
swipe(0);
}
if (listView != null) {
listView.requestDisallowInterceptTouchEvent(false);
motionInterceptDisallowed = false;
}
holder.deleteView.setVisibility(View.VISIBLE);
return true;
case MotionEvent.ACTION_CANCEL:
holder.deleteView.setVisibility(View.VISIBLE);
return false;
}
return true;
}
private void swipe(int distance) {
View animationView = holder.mainView;
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) animationView.getLayoutParams();
params.rightMargin = -distance;
params.leftMargin = distance;
animationView.setLayoutParams(params);
}
private void swipeRemove() {
remove(getItem(position));
notifyDataSetChanged();
}
}
}
AudioObjectHolderとは何ですか?私のクラスでSwipeDetectorを使用するにはどうしたらいいですか? –
AudioObjectHolderはあなたのビューを保持しているクラスです。私はチュートリアルのリンクチェックを行い、理解しようとしています.. http://www.jayrambhia.com/blog/swipe-listview/ – Dinesh
ありませんIを実装試したことはありませんが、私はやりたくありません。 –
あなたのコードを投稿した場合にのみ助けることができます。あなたがこれに努力するよう気にすることができないなら、他の人たちには期待しないでください。 – SubliemeSiem
私はビューポケベルを使ってそのような機能を達成しました。 –