Ксамарин.NavigationTabStrip Андроид
Я хочу реализовать NavigationTabStrip (https://github.com/martijn00/NavigationTabStripXamarin ) в мое приложение, но я не знаю, как. Я видел также оригинальный проект, но я новичок в этом мире. Есть ли у кого-нибудь проект, который поможет мне осуществить это? Или есть кто-нибудь, кто знает, как это сделать? Я пытаюсь создать таблицу в material design.
2 ответа:
Проще всего сделать это так:
Http://camposha.info/source/xamarin-android-swipe-tabs-viewpager-fragments-images-actionbartabs/
Код написан на языке 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; } } }