在我的Android应用程序中,有两个名为FragmentA
和FragmentB
的片段。我使用ViewPager
将两个片段添加到FragmentAdapter
所以当我运行应用程序时,我得到一个意外的布局(两个片段布局混合在一起)。每当我尝试通过滑动更改currentItem
ViewPager
时,布局会相互混合。
我的问题:如果我们对ViewPager
中的不同片段使用相同的布局,会有任何问题吗?
答案 0 :(得分:2)
我找到了答案
如果使用getView()
Fragment
函数来引用片段的当前根视图,则没有问题。这样您就可以在Fragment
中获得精确的观点。您可以这样使用(getView().findViewByid(...);
但是如果使用活动引用来引用片段中的视图,则会出现问题。因为使用相同布局xml的每个片段中的所有视图都具有相同的id。因此,如果您更改片段中视图的值,该片段将反映在ViewPager
中使用相同布局的其他片段中。
还有一件事,想想这样,当活动创建时,所有此活动的ViewPager
中的片段也将创建并在后台运行。因此,如果您更改视图的值,android将返回具有相同ID的第一个视图。 Android只知道视图的ID。所以总是使用它的根视图(getView()
)来引用片段的视图。