V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
creatorYC
V2EX  ›  Android

用 fragment 和 viewpager 做左右滑动时遇到的问题

  •  
  •   creatorYC · 2015-09-20 21:24:40 +08:00 · 5777 次点击
    这是一个创建于 3135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我已经实现了动态添加 fragment ,现在想做动态删除,可是遇到了问题。我没有用到 fragmentTraction 那些类。
    我在动态删除时,可以获取到我想删除的那个 fragment 信息,可是每次删除的都是位于最后位置上的那个 fragment ,不知道怎么回事,是不是 fragment 的适配器类里面要重写哪些方法,不知道有没有人遇到类似的问题,求解答。不胜感激

    9 条回复    2015-09-22 22:35:57 +08:00
    x4589130
        1
    x4589130  
       2015-09-21 08:22:27 +08:00
    我最近也遇到了动态删除的问题,删除后总会遇到空指针的 bug ,这是我的代码 http://segmentfault.com/q/1010000003760973?_ea=356538
    Bown
        2
    Bown  
       2015-09-21 12:04:51 +08:00
    ViewPager+Fragment 坑比较多,不能删是一个问题,还有生命周期混乱这些问题

    我觉得之前 Square 的这篇文章说的挺好: https://corner.squareup.com/2014/10/advocating-against-android-fragments.html
    Leu
        3
    Leu  
       2015-09-21 12:11:05 +08:00
    @Bown 不能删?那像这种类似 ViewPager 可以滑动的页面,又需要增加删除功能,要怎么实现呢?
    Bown
        4
    Bown  
       2015-09-21 12:59:50 +08:00   ❤️ 1
    @Leu 试试把 FragmentPagerAdapter 换成 FragmentStatePagerAdapter ,重载 getItemPosition ,返回 PagerAdapter.POSITION_NONE


    See http://stackoverflow.com/questions/10396321/remove-fragment-page-from-viewpager-in-android
    creatorYC
        5
    creatorYC  
    OP
       2015-09-21 20:43:13 +08:00 via Android
    @Bown 试过了,不行,可以动态删除,只不过删除的都是最后位置上的 fragment ,所以如果我删的就是最后位置上的 fragment 就一切正常,好奇怪,不知道怎么回事,唉:-(
    nicktogo
        6
    nicktogo  
       2015-09-21 23:15:27 +08:00
    nicktogo
        7
    nicktogo  
       2015-09-21 23:16:05 +08:00
    @nicktogo 唉,抱歉,没看楼上。。
    Leu
        8
    Leu  
       2015-09-22 22:31:08 +08:00
    @Bown 按链接里的方法实习了动态删除。我本来喜欢在 Activity 中全部新建好 Fragment ,再传给适配器,看来以后得改改了,还是在 getItem 里面新建比较合乎 ViewPager 默认的顺序。
    Leu
        9
    Leu  
       2015-09-22 22:35:57 +08:00
    @Bown 哎,想了想还是要看情况用。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2437 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:59 · PVG 23:59 · LAX 08:59 · JFK 11:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.