为每个视图膨胀新的布局 xml - PagerAdapter 中的实例化项目

Posted

技术标签:

【中文标题】为每个视图膨胀新的布局 xml - PagerAdapter 中的实例化项目【英文标题】:Inflate new layout xml for each view - instantiateItem in PagerAdapter 【发布时间】:2012-06-17 18:14:06 【问题描述】:

所以基本上我想用每个视图位置的单独 XML 布局填充 ViewPager 内的页面。我目前正在这样做

@Override
    public Object instantiateItem(View container, int position) 

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);

        if(position == 0)
        view = inflater.inflate(R.layout.main, null);
        ((ViewPager) container).addView(view, 0);
        
        if(position == 1)
            view = inflater.inflate(R.layout.main_second, null);
            ((ViewPager) container).addView(view, 0);
        
        if(position == 2)
            view = inflater.inflate(R.layout.main_third, null);
            ((ViewPager) container).addView(view, 0);
        

        return view;

视图最初显示正确,但是当我滑动 ViewPager 时,布局被隐藏/破坏。为什么是这样?我做错了吗?请帮助并纠正我。

谢谢。 爱。卫斯理

【问题讨论】:

你能得到解决方案吗? 它也可以帮助***.com/a/37916222/3496570 【参考方案1】:

查看this link,了解如何将它们组合在一起的优秀教程。基本上这个想法是你必须将新膨胀的视图添加到 ViewPager 集合中:

View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);

【讨论】:

在哪里实现这个你能解释一下吗? @Pintu,把这段代码放在switch语句后面的instantiateItem方法中。请参阅我帖子中教程链接的第 4 步。

以上是关于为每个视图膨胀新的布局 xml - PagerAdapter 中的实例化项目的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Android 中的 XML 中设置膨胀视图的布局宽度、高度和重量

为膨胀的布局设置视图的可见性消失

避免将 null 作为视图根传递(需要在膨胀布局的根元素上解析布局参数)

尝试为内部列表视图的每一行膨胀不同的视图 (android.view.InflateException: Binary XML..)

我可以在不膨胀/重新膨胀布局的情况下将视图添加到滚动视图吗?

在首选项设置中膨胀布局