android - ViewPager+Fragment,某个Fragment里面的一条数据发生变化,如何局部刷新这条数据
高洛峰
高洛峰 2017-04-17 17:42:05
0
4
720

ViewPager+Fragment,某个Fragment里面的一条数据发生变化,如何局部刷新这条数据

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(4)
巴扎黑

ViewPagerの項目がFragmentの場合、通常はAdapterとしてFragmentPagerAdapterが使用され、Fragmentを追加する際にこのクラスがタグを追加します。ソース内のFragmentPagerAdapterメソッドinstantiateItem()を参照してください。

のコード リーリー

このタグは makeFragmentName() のプライベート メソッドを通じて取得されますが、必要なのはこのメソッドを直接コピーすることだけです。このメソッドのパラメーター viewId は ViewPager の ID である必要があり、itemId は getItemId() メソッドです。アダプターのタグを自分で組み立てて、フラグメントを取得できます。
これで完了です。

いいねを押す +0
左手右手慢动作

RecyclerView を使用すると、次のように Eventbus を使用できます

リーリー
いいねを押す +0
左手右手慢动作

私もこの問題についてしばらく考えていましたが、検索した結果、適切な解決策が見つかりませんでした。pagerfragmentadapter は、対応するフラグメントを取得するための API を提供していないようです。
インデックス内に弱参照のリストを作成し、フラグメントの初期化時にアダプターに追加してから、アダプターの onDestroyItem (おそらくこれと呼ばれた?思い出せません) を書き換えて、リスト内の対応するエントリを削除しました。ここ。
フラグメントインスタンスを取得した後は、自由に操作できます。

いいねを押す +0
Peter_Zhu
  1. フラグメントがフォアグラウンドにある場合、LocalBroadcastManager / EventBus / otto / Rx を使用してイベント (メッセージ) をサブスクライブできます

  2. フラグメントがバックグラウンドに切り替わったら、サブスクリプションをキャンセルし、フラグメントが再びフォアグラウンドに切り替わったら、ページ データを更新して再サブスクライブします

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート