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