拡張可能なリストビューに 2 つの機能を実装しました。
- ユーザーがグループ ビューをクリックすると、子ビューが表示されます (デフォルトで発生します)。
- また、左から右へのロング スワイプ リスナーも実装しており、ユーザーがロング スワイプを行うと、新しいアクティビティに移動します。
これらのアクションは両方とも正常に機能しています。しかし、画面上で長いスワイプを行うと、リストビューが開き、新しいアクティビティに移動する前に子要素も表示されます (上記の 1 を参照)。
コードの関連部分は次のとおりです。
ExpandableListView elvCat;
.
.
.
mAdapter = new SimpleExpandableListAdapter(
WordListFragment.this.getActivity(),
groupDataCat,
R.layout.word_list_item,
new String[] {WORD},
new int[] { R.id.tvWord },
childDataCat,
R.layout.meaning_list_item,
new String[] {MEANING},
new int[] { R.id.tvMeaning}
);
elvCat.setAdapter(mAdapter);
.
.
elvCat.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView arg0, View arg1, int arg2,
long arg3) {
if (swipeDetector.swipeDetected()) {
if (swipeDetector.getAction() == SwipeDetector.Action.LR) {
elvCat.collapseGroup(arg2);
Toast.makeText(getActivity(),
"Left to right", Toast.LENGTH_SHORT).show();
}
if (swipeDetector.getAction() == SwipeDetector.Action.RL) {
Intent detailIntent = new Intent(getActivity(), WordDetailActivity.class);
startActivity(detailIntent);
}
}
return false;
}
});
これを回避する方法を教えてください。