gpt4 book ai didi

android - 合并 PullToRefresh 和 SwipeListView 库时出现了一些错误

转载 作者:行者123 更新时间:2023-11-29 01:45:32 26 4
gpt4 key购买 nike

我有一个实现 PullToRefresh 的列表(旧的)和SwipeListView图书馆。

我正在关注 this结合这些图书馆和thisActivity 中使用它。

我的列表可以执行一些基本功能,例如上拉/下拉和向左/向右滑动,但我遇到了一些错误:

  1. 我的 ListView 中的项目位置总是从 1 开始,我认为它应该从 0 开始,所以我需要在我的方法中减少它。
  2. 当我滑动一个项目(比如第一个项目)时,第 5 个项目将被滑动到。所以index+4项也会被刷掉。

我用来初始化对象的代码:

private PullToRefreshSwipeListView ptrListView;
private SwipeListView resultListView;

resultListView = ptrListView.getRefreshableView();
ptrListView.setOnRefreshListener(new OnRefreshListener2<SwipeListView>() {

@Override
public void onPullDownToRefresh(PullToRefreshBase<SwipeListView> refreshView) {
// TODO Auto-generated method stub

}

@Override
public void onPullUpToRefresh(PullToRefreshBase<SwipeListView> refreshView) {
// TODO Auto-generated method stub

}

});

这是我用来初始化 ListView 的方法:

private void setListview() {
adapter = new LibraryAdapter(this, R.layout.item_library_list, new ArrayList<PurchasedItem>(), resultListView);
adapter.setListener(new LibraryListListener() {
//set the adapter

});

resultListView.setSwipeListViewListener(new BaseSwipeListViewListener() {
//position di -1 karena sejak gabung library swipelistview + pulltorefresh, position slalu kelebihan 1 & menyebabkan OutOfBound error.

@Override
public void onClickFrontView(final int position) {
//do something here
}

@Override
public void onOpened(int position, boolean toRight) {
// TODO Auto-generated method stub
super.onOpened(position-1, toRight);
lastPos = position-1;
}

@Override
public void onMove(int position, float x) {
// TODO Auto-generated method stub
super.onMove(position-1, x);
}

@Override
public int onChangeSwipeMode(int position) {
// TODO Auto-generated method stub
return SwipeListView.SWIPE_MODE_DEFAULT;
}

@Override
public void onStartOpen(int position, int action, boolean right) {
// TODO Auto-generated method stub
super.onStartOpen(position-1, action, right);

}

});

resultListView.setOnItemLongClickListener(new OnItemLongClickListener() {

@Override
public boolean onItemLongClick(AdapterView<?> adapter, View arg1,
final int pos, long arg3) {
//do something here

}
});

ptrListView.setAdapter(adapter);
ptrListView.setLongClickable(true);
resultListView.setSwipeOpenOnLongPress(false);
}

这是我的 xml:

 <com.handmark.pulltorefresh.library.PullToRefreshSwipeListView
xmlns:swipe="http://schemas.android.com/apk/res-auto"
xmlns:ptr="http://schemas.android.com/apk/res-auto"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:divider="@drawable/line_separator_repeat"
android:listSelector="#00000000"
ptr:ptrMode="pullFromEnd"
swipe:swipeActionLeft="reveal"
swipe:swipeBackView="@+id/back"
swipe:swipeCloseAllItemsWhenMoveList="true"
swipe:swipeFrontView="@+id/front"
swipe:swipeMode="both" />

请帮助我,我们将不胜感激。谢谢

最佳答案

我遇到了和你一样的第一个问题。我认为第一项(索引 0)是标题。

int _index = index -  listView.getHeaderViewsCount();

我从来没有遇到过你的第二个问题。你可以试试这个来解决感人的问题:

listView.setOnScrollListener(listView.getRefreshableView().getTouchListener().makeScrollListener());

希望对你有帮助

关于android - 合并 PullToRefresh 和 SwipeListView 库时出现了一些错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21776511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com