我有一個(gè)正在運(yùn)行的帶有導(dǎo)航抽屜活動(dòng)的 Android 應(yīng)用程序。對(duì)于每個(gè)菜單項(xiàng),我想實(shí)現(xiàn)一個(gè)單獨(dú)的片段,這樣我就可以使用相同的工具欄和抽屜菜單?,F(xiàn)在,此片段之一應(yīng)包含一個(gè)帶有 3 個(gè)選項(xiàng)卡的視圖(其中有 3 個(gè)帶有 Recyclerviews 的片段)。我創(chuàng)建了一個(gè)選項(xiàng)卡式活動(dòng)并將代碼遷移到一個(gè)新的片段中。當(dāng)我第一次使用選項(xiàng)卡片段單擊菜單項(xiàng)時(shí),它工作得很好。但是當(dāng)我瀏覽菜單然后再次打開(kāi)選項(xiàng)卡片段時(shí),它顯示了 3 個(gè)選項(xiàng)卡,但其中沒(méi)有任何內(nèi)容?,F(xiàn)在,當(dāng)我單擊第三個(gè)選項(xiàng)卡時(shí),將顯示數(shù)據(jù)。當(dāng)我切換回第一個(gè)選項(xiàng)卡時(shí),數(shù)據(jù)也回來(lái)了。只有中間的選項(xiàng)卡保持空白。我在一個(gè)全新的空項(xiàng)目上嘗試了這種方法,只有一個(gè)導(dǎo)航抽屜活動(dòng)和一個(gè)選項(xiàng)卡式活動(dòng),我還將代碼遷移到了一個(gè)片段。我只使用了 Android-Studio (3.4.2) 生成的代碼。在這些選項(xiàng)卡中只有文本視圖,但仍然存在相同的問(wèn)題。選項(xiàng)卡片段(從生成的選項(xiàng)卡式活動(dòng)遷移的代碼): public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { v = inflater.inflate(R.layout.activity_tab, container, false); context = getActivity().getApplicationContext(); SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(context, getActivity().getSupportFragmentManager()); ViewPager viewPager = v.findViewById(R.id.view_pager); viewPager.setAdapter(sectionsPagerAdapter); TabLayout tabs = v.findViewById(R.id.tabs); tabs.setupWithViewPager(viewPager); return v; }生成的SectionsPagerAdapter:public class SectionsPagerAdapter extends FragmentPagerAdapter { @StringRes private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2}; private final Context mContext; public SectionsPagerAdapter(Context context, FragmentManager fm) { super(fm); mContext = context; } @Override public Fragment getItem(int position) { // getItem is called to instantiate the fragment for the given page. // Return a PlaceholderFragment (defined as a static inner class below). return PlaceholderFragment.newInstance(position + 1); } @Nullable @Override public CharSequence getPageTitle(int position) { return "Some Title"; } @Override public int getCount() { // Show 3 total pages. return 3; }}我只更改了“getCount”中的制表符數(shù)量和“getPageTitle”中返回的字符串是否有可能在菜單項(xiàng)點(diǎn)擊時(shí)繼續(xù)使用片段,或者我是否必須使用選項(xiàng)卡式活動(dòng)?
1 回答

鳳凰求蠱
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
首先,我認(rèn)為你應(yīng)該使用childFragmentManager而不是supportFragmentManager。
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(context, getChildFragmentManager());
添加回答
舉報(bào)
0/150
提交
取消