यह संभव है। इस कोड को view_pager_fragment.xml फ़ाइल
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
ViewPagerFragment
ViewPager viewPager;
TabLayout tabLayout;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tracks, container, false);
viewPager = (ViewPager) view.findViewById(R.id.viewpager);
tabLayout = (TabLayout) view.findViewById(R.id.tab);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setupViewPager(viewPager);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getChildFragmentManager());``
viewPagerAdapter.addFragment(new FirstFragment(), "First");
viewPagerAdapter.addFragment(new SecoundFragment(), "Secound");
viewPagerAdapter.addFragment(new LoginFragment(), "Login");
viewPager.setAdapter(viewPagerAdapter);
}
private class ViewPagerAdapter extends FragmentPagerAdapter {
List<Fragment> fragmentList = new ArrayList<>();
List<String> fragmentTitles = new ArrayList<>();
public ViewPagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return fragmentTitles.get(position);
}
public void addFragment(Fragment fragment, String name) {
fragmentList.add(fragment);
fragmentTitles.add(name);
}
}
स्रोत
2017-05-30 10:26:46
लेकिन यह संभव नहीं है क्योंकि मैं अपने टुकड़े 2 के अंदर एक फ्रैगमेंट एक्टिविटी नहीं डाल सकता, क्योंकि खंड माता-पिता एक फ्रैगमेंट एक्टिविटी है, और बच्चे (खंड 2) को एक टुकड़ा होना आवश्यक है टैब हैं .. और github उदाहरण में एक अन्य टुकड़े के अंदर एक टुकड़ा नहीं डालते हैं। –
आपको टुकड़े 1 की आवश्यकता क्यों है? क्या आपके पास सिर्फ एक दर्शक नहीं है जो अलग-अलग टुकड़ों का संदर्भ देता है और फिर इसके नीचे टुकड़ा 2 है? –
लेकिन खंड 1 हमेशा समान होता है और यह परिवर्तनों की तरह दिखता है, और यह नहीं चाहता .. कुछ विचार? –