Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.android Android导航标签条_Xamarin.android_Android Tablayout - Fatal编程技术网

Xamarin.android Android导航标签条

Xamarin.android Android导航标签条,xamarin.android,android-tablayout,Xamarin.android,Android Tablayout,我想在我的应用程序中实现NavigationTabStrip(),但我不知道如何实现。我也看过原始项目,但我是新来的。有没有人能帮我实施这个项目?还是有人知道怎么做?我正在尝试在材质设计中创建一个表格布局。试试这个库,它更清晰 最简单的方法是: 代码在xamarin中,因此它对您来说是一个简单的实现 祝你好运 更新: 活动Axml文件的代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

我想在我的应用程序中实现NavigationTabStrip(),但我不知道如何实现。我也看过原始项目,但我是新来的。有没有人能帮我实施这个项目?还是有人知道怎么做?我正在尝试在材质设计中创建一个表格布局。

试试这个库,它更清晰


最简单的方法是:

代码在xamarin中,因此它对您来说是一个简单的实现

祝你好运

更新:

活动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;
        }
    }
}
公共类GoogleMapsActivity:AppCompatActivity
{
私有片段映射片段;
私有片段列表片段;
所有标签的专用表格布局;
碎片管理器fm;
碎片交易;
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.your_活动);
bindAllWidgets();
setupTabLayout();
设置工具栏();
}
void setUpToolbar()
{
#区域“工具栏”
var-toolbar=findviewbyd(Resource.Id.toolbar);
SetTitleTextColor(ResourcesCompat.GetColor(Resources,Resource.Color.colorRedText,null));
Drawable upArrow=ResourcesCompat.GetDrawable(Resources,Resource.Drawable.abc_ic_ab_back_mtrl_am_alpha,null);
SetColorFilter(Color.ParseColor(Resources.GetString(Resource.Color.colorRedText)),PorterDuff.Mode.SrcAtop);
设置支持操作栏(工具栏);
SupportActionBar.Title=Resources.GetString(Resource.String.toolbar\u Title\u dhl\u service\u points);
SupportActionBar.SetHomeButtonEnabled(真);
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
SupportActionBar.SetHomeAsUpIndicator(向上箭头);
#端区
}
私有void setupTabLayout()
{
allTabs.AddTab(allTabs.NewTab().SetText(Resources.GetString(Resource.String.google\u maps\u page\u title\u map)),true);
allTabs.AddTab(allTabs.NewTab().SetText(Resources.GetString(Resource.String.google\u maps\u page\u title\u list));
}
私有void bindAllWidgets()
{
allTabs=findviewbyd(Resource.Id.tabs);
allTabs.TabSelected+=所有选项卡\tabu选中;
}
私有void AllTabs\u tab选中(对象发送者,TabSelectedEventArgs e)
{
var-tab=e.tab;
setCurrentTabFragment(制表位);
}
公共无效替换片段(片段片段)
{
fm=碎片管理器;
ft=fm.BeginTransaction();
if(fragment==MapsFragment)
{
if(MapsFragment==null)
{
MapsFragment=新的PoSLocationMapView(此);
ft.Add(Resource.Id.frame_容器,MapsFragment,“MapsFragment”);
}
其他的
{
ft.Detach(FragmentManager.FindFragmentByTag(“ListFragment”);
ft.Attach(地图碎片);
}
}
else if(fragment==ListFragment)
{
如果(ListFragment==null)
{
ListFragment=新的ServicePointDhlist(此);
ft.Add(Resource.Id.frame_容器,ListFragment,“ListFragment”);
}
其他的
{
ft.Detach(FragmentManager.FindFragmentByTag(“MapsFragment”);
ft.Attach(列表片段);
}
}
ft.SetTransition(fragmenttransition.FragmentOpen);
ft.Commit();
}
私有void setCurrentTabFragment(int-tabPosition)
{
开关(选项卡位置)
{
案例0:
替换片段(MapsFragment);
打破
案例1:
替换片段(ListFragment);
打破
}
}
}

谢谢,但我没有使用Xamarin.Forms..我可以使用第一个吗?除了材料设计之外,有没有其他方法可以使用第一个?附:谢谢默认情况下,这实际上会占用你的主题,你不必担心,但是在fragment_sample.axml文件中,我在SlidengTablayoutTutorial.SlidengTabscrollView中出错,它不存在..我要发疯了..你在使用哪个链接,先生?还有..可能我错了,但它不占用主题,我在清单中设置了一个材质主题,但它不起作用:\