Quantcast
Channel: Recent Threads — Xamarin Community Forums
Viewing all articles
Browse latest Browse all 204402

Tab Button Click

$
0
0

Hello,
I have a tabbed page. Moving between the tab-fragments works fine just with swiping. Now I want to move between the tab-fragments by clicking the tab-button or tab-name. See image for problem:

The fragment code:

namespace The_Boeing_737NG_App.Fragments
{
    public class FuelOrderFragment : Fragment
    {
        ViewPager viewPager;
        FuelOrderTabsAdapter fuelOrderTabsAdapter;
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Create your fragment here
        }

        public static FuelOrderFragment NewInstance()
        {
            var fuelOrderFragment = new FuelOrderFragment { Arguments = new Bundle() };
            return fuelOrderFragment;
        }

        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var ignored = base.OnCreateView(inflater, container, savedInstanceState);
            var view = inflater.Inflate(Resource.Layout.fuel_order_fragment, null);
            viewPager = view.FindViewById<ViewPager>(Resource.Id.fuelOrderViewPager);
            var tabLayout = view.FindViewById<TabLayout>(Resource.Id.fuelOrderTabLayout);
            fuelOrderTabsAdapter = new FuelOrderTabsAdapter(view.Context, FragmentManager);
            viewPager.Adapter = fuelOrderTabsAdapter;
            tabLayout.SetupWithViewPager(viewPager);
            return view;
        }
    }

    class FuelOrderTabsAdapter : FragmentStatePagerAdapter
    {
        string[] fuelCheckSections;
        Context _context;
        public override int Count
        {
            get
            {
                return fuelCheckSections.Length;
            }
        }

        public FuelOrderTabsAdapter(Context context, FragmentManager fragmentManager) : base(fragmentManager)
        {
            _context = context;
            fuelCheckSections = context.Resources.GetTextArray(Resource.Array.fuel_order_sections);
        }

        public override Java.Lang.ICharSequence GetPageTitleFormatted(int position)
        {
            return new String(fuelCheckSections[position]);
        }

        public override Fragment GetItem(int position)
        {
            switch (position)
            {
                case 0:
                    return FuelOrderDistributionFragment.NewInstance();
                case 1:
                    return FuelOrderUpliftFragment.NewInstance();
                case 2:
                    return FuelOrderOrderFragment.NewInstance();
            }
            return null;
        }

        public override int GetItemPosition(Object frag)
        {
            return PositionNone;
        }        
    }
}

The fragment layout/axml itself:

    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/fuelOrderCoordinatorLayout"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:theme="@style/Theme.BoeingTheme"
        android:background="@color/blueGrey700">
        <android.support.design.widget.TabLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fuelOrderTabLayout" />
        <android.support.v4.view.ViewPager
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/fuelOrderViewPager" />
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/fuelOrderFrameLayout"
            android:layout_margin="16dp" />
    </android.support.design.widget.CoordinatorLayout>

Any ideas?


Viewing all articles
Browse latest Browse all 204402

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>