Ксамарин.NavigationTabStrip Андроид


Я хочу реализовать NavigationTabStrip (https://github.com/martijn00/NavigationTabStripXamarin ) в мое приложение, но я не знаю, как. Я видел также оригинальный проект, но я новичок в этом мире. Есть ли у кого-нибудь проект, который поможет мне осуществить это? Или есть кто-нибудь, кто знает, как это сделать? Я пытаюсь создать таблицу в material design.

2 2

2 ответа:

Проще всего сделать это так:

Http://camposha.info/source/xamarin-android-swipe-tabs-viewpager-fragments-images-actionbartabs/

Http://www.c-sharpcorner.com/article/creating-sliding-tab-layout-interface-using-xamarin-android-using-visual-studio/

Код написан на языке xamarin, так что это будет простая реализация для вас!

Гудлак!

Обновление:

Код для вашего файла activities Axml :

 <LinearLayout 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:orientation="vertical"
   >
<android.support.v7.widget.Toolbar
  android:id="@+id/toolbar"
  android:layout_width="match_parent"
  android:layout_height="?actionBarSize"
  android:minHeight="?attr/actionBarSize"
  android:background="?attr/colorPrimary"
  android:theme="@style/MyTheme"
  app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

 <android.support.design.widget.TabLayout
  android:id="@+id/tabs"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  app:tabGravity="fill"
  app:tabMode="fixed"
   />
<FrameLayout
  android:id="@+id/frame_container"
  android:layout_width="match_parent"
  android:layout_height="match_parent" />
</LinearLayout>

Код для вашей деятельности cs-файл:

 public class GoogleMapsActivity : AppCompatActivity
{
    private Fragment MapsFragment;
    private Fragment ListFragment;
    private TabLayout allTabs;
    FragmentManager fm;
    FragmentTransaction ft;
  protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.your_activity);
        bindAllWidgets();
        setupTabLayout();
        setUpToolbar();
    }
  void setUpToolbar()
    {
        #region "Tool bar"
        var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        toolbar.SetTitleTextColor(ResourcesCompat.GetColor(Resources, Resource.Color.colorRedText, null));
        Drawable upArrow = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.abc_ic_ab_back_mtrl_am_alpha, null);
        upArrow.SetColorFilter(Color.ParseColor(Resources.GetString(Resource.Color.colorRedText)), PorterDuff.Mode.SrcAtop);
        SetSupportActionBar(toolbar);
        SupportActionBar.Title = Resources.GetString(Resource.String.toolbar_title_dhl_service_points);
        SupportActionBar.SetHomeButtonEnabled(true);
        SupportActionBar.SetDisplayHomeAsUpEnabled(true);
        SupportActionBar.SetHomeAsUpIndicator(upArrow);
        #endregion
    }
    private void setupTabLayout()
    {
        allTabs.AddTab(allTabs.NewTab().SetText(Resources.GetString(Resource.String.google_maps_page_title_map)), true);
        allTabs.AddTab(allTabs.NewTab().SetText(Resources.GetString(Resource.String.google_maps_page_title_list)));
    }

    private void bindAllWidgets()
    {
        allTabs = FindViewById<TabLayout>(Resource.Id.tabs);
        allTabs.TabSelected += AllTabs_TabSelected;
    }
    private void AllTabs_TabSelected(object sender, TabSelectedEventArgs e)
    {
        var tab = e.Tab;
        setCurrentTabFragment(tab.Position);
    }
    public void replaceFragment(Fragment fragment)
    {
        fm = FragmentManager;
        ft = fm.BeginTransaction();
        if (fragment == MapsFragment)
        {
            if (MapsFragment == null)
            {
                MapsFragment = new PoSLocationMapView(this);
                ft.Add(Resource.Id.frame_container, MapsFragment, "MapsFragment");

            }
            else
            {
                ft.Detach(FragmentManager.FindFragmentByTag("ListFragment"));
                ft.Attach(MapsFragment);
            }
        }
        else if (fragment == ListFragment)
        {
            if (ListFragment == null)
            {
                ListFragment = new ServicePointDHLList(this);
                ft.Add(Resource.Id.frame_container, ListFragment, "ListFragment");
            }
            else
            {
                ft.Detach(FragmentManager.FindFragmentByTag("MapsFragment"));
                ft.Attach(ListFragment);
            }
        }
        ft.SetTransition(FragmentTransit.FragmentOpen);
        ft.Commit();

    }
    private void setCurrentTabFragment(int tabPosition)
    {
        switch (tabPosition)
        {
            case 0:
                replaceFragment(MapsFragment);
                break;
            case 1:
                replaceFragment(ListFragment);
                break;
        }
    }
}

Попробуйте эту библиотеку более наглядно.

Https://github.com/ahoefling/TabStrip/blob/master/README.md