我正在尝试将 Pull To Refresh 功能添加到已经使用 Mark Myrphy aka @commonsware 制作的 Merge Adapter 的 Activity 中。
这是我们的代码:
//get container PTR listview
PullToRefreshListView ptrLvContainer = (PullToRefreshListView) findViewById(R.id.lv_merge_fragment);
//create adapter for bottom list view
lvAdapter = new ListViewAdapter(this, R.layout.adapter_row, alResults);
mMergeAdapter = new MergeAdapter();
//Create 2 rows of custom views, that will be set above the lvAdapter
LinearLayout llRow1 = new LinearLayout(this);
//here we add picture to llRow1
LinearLayout llRow2 = new LinearLayout(this);
//here we add 2 pictures to llRow2
//Add everything to mergeAdapter
mergeAdapter.addView(llRow1);
mergeAdapter.addView(llRow2);
mergeAdapter.addAdapter(lvAdapter);
//set mergeAdapter to Pull To Refresh ListView
ptrLvContainer.setAdapter(mergeAdapter);
这里是 lv_merge_fragment.xml。
<?xml version="1.0" encoding="utf-8"?>
<com.handmark.pulltorefresh.library.PullToRefreshListView
xmlns:ptr="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
ptr:ptrMode="pullDownFromTop"
ptr:ptrDrawable="@drawable/cell_home_top"
android:id="@+id/lv__merge_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:scrollbars="none"
android:fadingEdge="none"
android:divider="@android:color/transparent"
android:listSelector="@android:color/transparent" >
</com.handmark.pulltorefresh.library.PullToRefreshListView>
我正在尝试一起工作https://github.com/chrisbanes/Android-PullToRefresh和https://github.com/commonsguy/cwac-merge。
不幸的是,有一个问题。MergeAdapter 将整个 PullToRefresh 列表视图视为从下到上显示的内容,这使得标题(用作 PTR 指示器)始终可见(不仅在拖动后)。我无法让它工作,重写其中一个库是解决这个问题的困难方法。有没有人成功使用 CommonsWare MergeAdapter 和 Pull to Refresh android 中的库?附上屏幕截图,以便更好地理解我想要实现的目标。基本上 PTR 动作应该重新加载所有视图。
这就是我希望它看起来/工作的样子:
在此先感谢您的帮助。