cari

Rumah  >  Soal Jawab  >  teks badan

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

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

高洛峰高洛峰2887 hari yang lalu727

membalas semua(4)saya akan balas

  • 巴扎黑

    巴扎黑2017-04-17 17:44:05

    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.

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:44:05

    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);

    balas
    0
  • ringa_lee

    ringa_lee2017-04-17 17:44:05

    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.

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-17 17:44:05

    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. .

    balas
    0
  • Batalbalas