我正在使用47degrees android滑动列表视图 https://github.com/47deg/android-swipelistview
我将所有复制到Eclipse项目中的文件都保持不变。
我在xml
中设置了listview<com.company.appname.swipe.SwipeListView
xmlns:swipe="http://schemas.android.com/apk/res-auto"
android:id="@+id/home_list_view"
android:listSelector="#00000000"
android:layout_width="match_parent"
android:layout_height="match_parent"
swipe:swipeFrontView="@id/swipelist_frontview"
swipe:swipeBackView="@id/swipelist_backview"
swipe:swipeActionLeft="reveal"
swipe:swipeActionRight="reveal"
swipe:swipeMode="both"
swipe:swipeCloseAllItemsWhenMoveList="false"
swipe:swipeOpenOnLongPress="false"
swipe:swipeAnimationTime="300"
swipe:swipeOffsetLeft="100dp"
swipe:swipeOffsetRight="0dp"
/>
我在代码中设置了SwipeListView
SwipeListViewTouchListener touchListener = new SwipeListViewTouchListener(mListView, R.id.swipelist_frontview, R.id.swipelist_backview);
touchListener.resetItems();
mListView.setOnTouchListener(touchListener);
当我尝试滑动列表项时,顶视图开始滑动一秒钟然后停止一部分(平均说10%,但可能会根据滑动的速度略有不同)。所以它被困在那个位置。我第二次尝试滑动它,它顺利滚动。
注意:我每隔一次触摸一个项目就会暂停 - 但它不必是同一个项目。例如,我可以开始滑动一行停止,然后我可以滚动相同的行或不同的行,它将是平滑的。
在调查中,我注意到第一次尝试滑动投掷和MotionEvent.ACTION_DOWN
事件后跟MotionEvent.ACTION_UP
事件。第二次有MotionEvent.ACTION_DOWN
后跟MotionEvent.ACTION_MOVE
后跟MotionEvent.ACTION_UP
(所以第一次没有MotionEvent.ACTION_MOVE
)
有任何想法或建议吗?
答案 0 :(得分:0)
我在项目中使用了swipe listview,但我没有遇到任何问题。我在你的代码和我的代码中看到的唯一区别是touchListener.resetItems(); 我使用滑动监听器而不是touchlistener。
listViewCalendar
.setSwipeListViewListener(new BaseSwipeListViewListener() {
@Override
public void onOpened(int position, boolean toRight) {
}
@Override
public void onClosed(int position, boolean fromRight) {
}
@Override
public void onListChanged() {
}
@Override
public void onMove(int position, float x) {
}
@Override
public void onStartOpen(int position, int action,
boolean right) {
}
@Override
public void onStartClose(int position, boolean right) {
}
@Override
public void onClickFrontView(int position) {
//
}
@Override
public void onClickBackView(int position) {
// Log.d("swipe",
}
@Override
public void onDismiss(int[] reverseSortedPositions) {
}
});
listViewCalendar.setOffsetLeft((width - convertDpToPixel(115)));
listViewCalendar.setSwipeMode(SwipeListView.SWIPE_MODE_LEFT);
listViewCalendar.setSwipeActionLeft(SwipeListView.SWIPE_ACTION_REVEAL);
listViewCalendar.setOffsetLeft(width - convertDpToPixel(120f));
listViewCalendar.setAnimationTime(75);
并且继承了我的xml。
<com.fortysevendeg.swipelistview.SwipeListView
xmlns:swipe="http://schemas.android.com/apk/res-auto"
android:id="@+id/listViewCalendar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/buttonNewEntry"
android:layout_alignParentLeft="true"
android:layout_below="@+id/relativeLayout1"
android:listSelector="#00000000"
swipe:swipeBackView="@+id/back"
swipe:swipeCloseAllItemsWhenMoveList="true"
swipe:swipeFrontView="@+id/front"
swipe:swipeMode="both" >
</com.fortysevendeg.swipelistview.SwipeListView>
随时提出任何问题。
答案 1 :(得分:0)
似乎将listview swipemode属性更改为
swipe:swipeMode="none"
解决了我的特殊问题。