我有一个标签式片段应用程序,它实际上加载了一个webview。在任何给定的选项卡中,您可以导航到更多链接。基本上,当选项卡重新选择时,我希望webview返回到原始webview网址。我尝试过使用onTabReselected方法,但还没有取得任何成功。
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.replace(R.id.fragment_container, fragment);
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
我尝试过替换代码行,就像在onTabSelected方法中一样,但它似乎没有用。我尝试删除片段,然后替换片段,但这留下了一个空标签。任何帮助将不胜感激。
答案 0 :(得分:1)
分离并重新连接片段最终成为我需要的东西。
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
ft.detach(fragment);
ft.attach(fragment);
}
答案 1 :(得分:0)
在onTabReselected触发时触发onchreView on on Support Support,
public void onTabReselected(TabLayout.Tab tab) {
// specify tab position (optional)
if (tab.getPosition()==0){
// get adapter
CustomViewPagerAdapter adapter =
((CustomViewPagerAdapter) viewPager.getAdapter());
// get fragment
android.support.v4.app.Fragment fragment =
adapter.getRegisteredFragment(tab.getPosition());
getSupportFragmentManager()
.beginTransaction()
.detach(fragment)
.attach(fragment)
.commit();
}
}
registeredFragments变量只保存CustomFragmentPagerAdapter类中的片段实例。
@Override
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = (Fragment) super.instantiateItem(container, position);
registeredFragments.put(position, fragment);
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
registeredFragments.remove(position);
super.destroyItem(container, position, object);
}
public Fragment getRegisteredFragment(int position) {
return registeredFragments.get(position);
}