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

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

高洛峰
高洛峰

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

membalas semua(4)
巴扎黑

Apabila item

ViewPager ialah Fragment, FragmentPagerAdapter biasanya digunakan sebagai Penyesuai, dan kelas ini akan menambah teg apabila menambah Fragment Lihat kaedah FragmentPagerAdapter dalam sumber kod instantiateItem()

@Override
public Object instantiateItem(ViewGroup container, int position) {
    // 省略
    if (fragment != null) {
        // 省略
    } else {
        // 省略部分代码
        // 下面这句就是添加Fragment的语句, 第三个参数就是指定Fragment的tag, 
        // 你可以利用这个tag获取到对应的Fragment实例, 有了实例就可以随意更新Fragment的视图了
        mCurTransaction.add(container.getId(), fragment,
                makeFragmentName(container.getId(), itemId));
    }
    // 省略
    return fragment;
}
Teg ini diperoleh melalui kaedah peribadi

, tetapi anda hanya perlu menyalin kaedah ini secara langsung Id paparan parameter kaedah ini hendaklah id bagi makeFragmentName() dan itemId ialah kaedah ViewPager. daripada penyesuai. Jadi anda boleh memasang teg itu sendiri dan mendapatkan Fragmen.getItemId()Itu sahaja.

左手右手慢动作

Jika anda menggunakan RecyclerView, anda boleh menggunakan Eventbus seperti ini

mAdapter.getItem(event.position).setCommentCount(mAdapter.getItem(event.position).getCommentCount()+1);
mAdapter.notifyItemChanged(event.position);
左手右手慢动作

Saya juga telah memikirkan masalah ini untuk seketika, dan selepas mencari, saya tidak dapat mencari penyelesaian yang baik The pagerfragmentadapter nampaknya tidak menyediakan API untuk mendapatkan serpihan yang sepadan.
Saya membuat senarai rujukan yang lemah dalam indeks dan menambahkannya pada penyesuai apabila ia memulakan serpihan, dan kemudian menulis semula penyesuai onDestroyItem (mungkin dipanggil ini? Saya tidak ingat) untuk mengalih keluar masukan yang sepadan dalam senarai di sini.
Anda boleh mengendalikannya sesuka hati selepas mendapat contoh serpihan.

Peter_Zhu
  1. Apabila Fragmen berada di latar depan, anda boleh menggunakan LocalBroadcastManager / EventBus / otto / Rx untuk melanggan acara (mesej)

  2. Apabila Fragmen beralih ke latar belakang, batalkan langganan Apabila Fragmen beralih ke latar depan semula, muat semula data halaman dan langgan semula

  3. .
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan