首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从片段内部获取父ViewPager视图

从片段内部获取父ViewPager视图
EN

Stack Overflow用户
提问于 2012-08-28 13:04:56
回答 4查看 20K关注 0票数 35

我试图从一个片段中访问父viewpager,但我不知道如何做到这一点。我需要在片段内的onClick事件之后切换ViewPager上的currentItem。

有什么想法吗?

编辑:

我想要访问父视图(ViewPager视图),这样我就可以从我的片段中更改可见的currentItem。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-28 13:10:36

从片段中调用getActivity(),它将为您提供托管片段的活动。然后调用findViewById(ViewPagerId)获取ViewPager。

代码语言:javascript
复制
ViewPager vp=(ViewPager) getActivity().findViewById(ViewPagerId);
票数 101
EN

Stack Overflow用户

发布于 2015-01-11 01:16:31

编辑:我必须补充,即使Eldhose answer的工作有效,我也会为我的方法辩护。因为片段对包含它的活动了解得越少越好。通过这样做,您可以在不依赖于ID的情况下获得父视图,并且即使它不是ViewPager,也仍然可以从中获取信息。

您可以在片段的onCreateView方法中获取。

container参数是父视图,在本例中是一个ViewPager。

在Java中:

代码语言:javascript
复制
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        
        ViewPager pager = (ViewPager) container;
        //.... Rest of your method
    }

Kotlin版本:

代码语言:javascript
复制
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup, 
    savedInstanceState: Bundle) {

        val pager = container as ViewPager
        //.... Rest of your method
    }
票数 36
EN

Stack Overflow用户

发布于 2016-07-21 20:51:54

onCreateViewonViewCreatedonAttach方法调用得太早了。

在片段的onResume方法中,该视图绝对附加到它的父视图。这是一个使用getView().getParent()的好地方

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12153076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档