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?