【发布时间】:2023-03-03 06:31:20
【问题描述】:
在我的应用程序中,我的主 Activity 实现了在两个片段之间切换的 TabLayout。它们的处理方式如下:
private class PagerAdapter extends FragmentPagerAdapter {
PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return position == 0 ? Tab1Frag.getInstance()
: Tab2Frag.getInstance();
}
@Override
public int getCount() {
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
return position == 0 ? "Tab1" : "Tab2";
}
}
它们(这些片段)都实现自
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager
否则我不能以这种方式使用它们。
一切正常,但现在我面临这个问题。我有时想通过以下方法将 Tab1 片段更改为不同的片段:
private void replaceFragment(int code) { FragmentTransaction ft = getFragmentManager().beginTransaction();
if(code==0){
ViewListElementFrag fragment = new ViewListElementFrag ();
ft.replace(R.id.fragmentFrame, fragment, ViewListElementFrag.TAG);
}
else if(code==1){
EditElementFragment fragment = new EditElementFragment ();
ft.replace(R.id.fragmentFrame, fragment, EditElementFragment.TAG);
}
ft.commit();
}
这正常工作,但现在面临问题。
FragmentTransaction ft = getFragmentManager().beginTransaction();
必须是 appv4,但它不允许替换标准 android.app.fragment 中的片段。我怎样才能让它工作,所以我的标签布局中的片段可以被不同的片段替换?还是我需要使用新的活动?
谢谢你 格热戈日
编辑:
解释一下。在行中
ft.replace(R.id.fragmentFrame, fragment, FragmentWhatever.TAG);
我得到第二个参数片段的错误应该是 android.suppotr.v4.app.Fragment 类型
【问题讨论】: