我试图从一个片段中访问父viewpager,但我不知道如何做到这一点。我需要在片段内的onClick事件之后切换ViewPager上的currentItem。
有什么想法吗?
编辑:
我想要访问父视图(ViewPager视图),这样我就可以从我的片段中更改可见的currentItem。
发布于 2012-08-28 13:10:36
从片段中调用getActivity(),它将为您提供托管片段的活动。然后调用findViewById(ViewPagerId)获取ViewPager。
ViewPager vp=(ViewPager) getActivity().findViewById(ViewPagerId);
发布于 2015-01-11 01:16:31
编辑:我必须补充,即使Eldhose answer的工作有效,我也会为我的方法辩护。因为片段对包含它的活动了解得越少越好。通过这样做,您可以在不依赖于ID的情况下获得父视图,并且即使它不是ViewPager,也仍然可以从中获取信息。
您可以在片段的onCreateView
方法中获取。
container
参数是父视图,在本例中是一个ViewPager。
在Java中:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewPager pager = (ViewPager) container;
//.... Rest of your method
}
Kotlin版本:
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup,
savedInstanceState: Bundle) {
val pager = container as ViewPager
//.... Rest of your method
}
发布于 2016-07-21 20:51:54
onCreateView
、onViewCreated
和onAttach
方法调用得太早了。
在片段的onResume
方法中,该视图绝对附加到它的父视图。这是一个使用getView().getParent()
的好地方
https://stackoverflow.com/questions/12153076
复制相似问题