Mark Myrphy aka @commonsware によって作成された Merge Adapter を既に使用している Activity に Pull To Refresh 機能を追加しようとしています。
コードは次のとおりです。
//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 インジケーターとして使用される) が (ドラッグ後だけでなく) 常に表示されます。私がそれを機能させる方法はありません.libsの1つを書き直すことは、この問題を解決するのが難しい方法です. Android で、Pull to Refresh ライブラリを使用して CommonsWare MergeAdapter を正常に使用した人はいますか? 私が達成しようとしていることをよりよく理解するために添付されたスクリーンショット。基本的に、PTR アクションはすべてのビューをリロードする必要があります。
そして、これが私がそれをどのように見せたいか/どのように機能させたいかです:
助けてくれてありがとう。