Mat*_*att 5 android android-fragments android-viewpager android-tablayout
我有一个使用带有几个片段的TabLayout的ViewPager.我想从其中一个ViewPager片段中单击一个按钮,并使用选项卡名称将用户定向到另一个选项卡/片段.
单击该按钮时,我希望TabLayout更改以及显示与该选项卡关联的片段.我还需要发送附加数据以显示新片段.
我无法访问ViewPager setCurrentItem(int index).理想情况下,我想与父母沟通以完成请求.
您应该在父级中编写一个方法(包含ViewPager和子片段),如下所示:
public void setPagerFragment(int a)
{
pager.setCurrentItem(a);
}
Run Code Online (Sandbox Code Playgroud)
这会将ViewPager中的当前Fragment设置为指定的片段.然后,您可以从子Fragment调用此方法:
int newFrag = 0; //the number of the new Fragment to show
ParentActivity parent = (ParentActivity) getActivity();
parent.setPagerFragment(newFrag);
Run Code Online (Sandbox Code Playgroud)
关于使用要在新片段上显示的请求发送附加数据,您可以在父级中创建另一个方法,在子级中调用,这将在父级中设置一些数据,父级可以在设置新片段时使用该方法.
例如在父母中:
public void setExtraData(Object data)
{
dataFromChildFrag = data;
}
Run Code Online (Sandbox Code Playgroud)
并在孩子中使用这样:
String data = "My extra data"; //the number of the new Fragment to show
ParentActivity parent = (ParentActivity) getActivity();
parent.setExtraData(data);
Run Code Online (Sandbox Code Playgroud)
最后,如果父实际上是Fragment本身而不是Activity,只需替换以下所有引用:
ParentActivity parent = (ParentActivity) getActivity();
Run Code Online (Sandbox Code Playgroud)
至:
ParentFragment parent = (ParentFragment) getParentFragment();
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
1974 次 |
| 最近记录: |