android - टुकड़ा के अंदर टुकड़ा टैब




android-fragments tabs (2)

नीचे दिए गए जवाब देखें कि मैंने अपने मुख्य गतिविधि में खंड टैब के अंदर खंड टैब का उपयोग करके हासिल किया है

GetChildFragmentManager का उपयोग करते हुए अपने टुकड़े के अंदर ()

public class FixturesTabs extends Fragment {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRetainInstance(true);
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fixtures_new_tabs,container, false);
    // Setting ViewPager for each Tabs
    ViewPager viewPager = (ViewPager) view.findViewById(R.id.viewpager);
    setupViewPager(viewPager);
    // Set Tabs inside Toolbar
    TabLayout tabs = (TabLayout) view.findViewById(R.id.fixture_tabs);
    tabs.setupWithViewPager(viewPager);


    return view;

}


// Add Fragments to Tabs
private void setupViewPager(ViewPager viewPager) {


    Adapter adapter = new Adapter(getChildFragmentManager());
    adapter.addFragment(new TodaysFixturesFragment(), "Today");
    adapter.addFragment(new WeekFixturesFragment(), "Week");
    adapter.addFragment(new MonthFixturesFragment(), "Month");
    adapter.addFragment(new AllFixturesFragment(), "Month");
    adapter.addFragment(new MyTeamsFixturesFragment(), "My Teams");
    viewPager.setAdapter(adapter);



}

static class Adapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public Adapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}



}

और फुलाए गए लेआउट से मिलान करने के लिए मेरे XML नाम "fixtures_new_tabs.xml"

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">


<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        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/result_tabs"
            android:background="@color/grey"
            app:tabTextColor="@color/medium_grey"
            app:tabSelectedTextColor="@color/colorPrimary"
            app:tabIndicatorColor="@color/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabMode="scrollable"/>
    </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" />

</android.support.design.widget.CoordinatorLayout>

</RelativeLayout>

उम्मीद है कि यह उनके समाधान के लिए दिशा में दूसरों की सहायता करता है या अंक देता है ..

मेरे मुख्य गतिविधि में एक एक्शन बार नेविगेशन में फ्रैगमेंट्स (सामग्री डिज़ाइन के साथ) का प्रयोग करते हुए टैब्स का उपयोग किया गया है, जो नीचे अच्छी तरह से काम करता है, लेकिन अब मैं अपने टुकड़ों के अंदर टैब नेविगेशन करना चाहता हूं ...

// Add Fragments to Tabs in Main Activity
private void setupViewPager(ViewPager viewPager) {
    Adapter adapter = new Adapter(getSupportFragmentManager());
    adapter.addFragment(new FeedsFragment(), "Latest Updates");
    adapter.addFragment(new ClubTeamsFragment(), "Club Teams");
    adapter.addFragment(new FixturesFragment(), "Fixtures");
    adapter.addFragment(new ResultsFragment(), "Results");
    adapter.addFragment(new ClubFieldsFragment(), "Club Fields");
    viewPager.setAdapter(adapter);
}

मुझे पूरा यकीन है कि TabHost को अब पदावनत किया गया है।

मैं संलग्न छवि को प्राप्त करना चाहता हूं। नीला टैब मुख्य गतिविधि स्तर पर हैं और ग्रे डेट टैब चयनित टुकड़े दृश्य में हैं।

मैंने टैब होस्ट या फ्रेगमेंट गतिविधि का उपयोग करने के बारे में कुछ पोस्ट पढ़ी हैं, या क्या मैं उस गतिविधि का उपयोग करता हूं जो कि टुकड़े तक बढ़ जाती है?


BENN1TH के बारे में अधिक पूरा जवाब देने के लिए, मैंने जो किया वह टैब के साथ ActivityMain से एक टुकड़ा फेंकना था।


    public class MainActivity extends AppCompatActivity {

    Button throwFragment;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        throwFragment = (Button) findViewById(R.id.throwFragment);

        //I add a fragment at run time
        throwFragment.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //I get the fragments manager instance
                FragmentManager fragmentManager = getSupportFragmentManager();

                //I create a transaction
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

                //I create a new fragment and add it to the layout of the activity
                FixturesTabs fixturesTabs = new FixturesTabs();
                fragmentTransaction.replace(R.id.containerTabs, fixturesTabs);

                //I confirm the change              
                fragmentTransaction.commit();
            }
        });
    }
    }

activity_main.xml मुख्य गतिविधि से संबंधित लेआउट, जहां मैं क्रम में टुकड़ा फेंकने के लिए एक बटन बनाया।

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="org.itdevelopers.braian.tabsinsidefragment.MainActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        android:id="@+id/containerTabs"/>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center">

        <Button
            android:id="@+id/throwFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="I throw fragment with tabs" />
    </LinearLayout>
</android.support.design.widget.CoordinatorLayout>

महत्वपूर्ण : टैब के साथ मुख्य गतिविधि टुकड़ा संदर्भ होगी, और इसके डिजाइन में डिजाइन में एक शैली का पालन करने के लिए निम्नलिखित पंक्ति के महत्व का उल्लेख करना आवश्यक है।

इसमें मुख्य गतिविधि के टूलबार को टुकड़ा के टैबलेट के साथ ओवरलैप करने की कार्यक्षमता नहीं है।

app:layout_behavior="@string/appbar_scrolling_view_behavior"

नीचे नेविगेशन पट्टी का उपयोग करते समय टैब के साथ एक टुकड़ा शुरू करना बहुत उपयोगी हो सकता है, क्योंकि यदि हम डिफ़ॉल्ट टैब का उपयोग करते हैं जो किसी गतिविधि में शामिल होते हैं तो यह अधिक संसाधनों का उपभोग करेगा (यह एंड्रॉइड स्टूडियो लॉकैट में मिली सेकंड में 'फ़िल्टर्स' के साथ जांचें) )।

  • कहानी का नैतिक *: यह टैबिडफ्रैगमेंट का उपयोग करना बेहतर है।

यह समुदाय में मेरी पहली टिप्पणी है, मुझे आशा है कि मैं कुछ के साथ सहयोग कर सकता हूं। धन्यवाद।





tabs