Android 默认情况下,碎片选项卡打开第三个选项卡

Android 默认情况下,碎片选项卡打开第三个选项卡,android,Android,我有创建片段选项卡,其中6个选项卡在我们调用此选项卡时可用,然后默认打开第一个选项卡,但我们希望在调用此页面时实现,然后默认打开第三个选项卡如何解决请建议 protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); tabHost = FindViewById<TabHost>(Android.Resource.Id.TabHost);

我有创建片段选项卡,其中6个选项卡在我们调用此选项卡时可用,然后默认打开第一个选项卡,但我们希望在调用此页面时实现,然后默认打开第三个选项卡如何解决请建议

    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        tabHost = FindViewById<TabHost>(Android.Resource.Id.TabHost);
        tabHost.Setup();

        viewPager = FindViewById<ViewPager>(Resource.Id.pager);
        tabsAdapter = new TabsAdapter(this, tabHost, viewPager);

        tabsAdapter.AddTab(tabHost.NewTabSpec("Sale").SetIndicator("Sale"), Java.Lang.Class.FromType(typeof(retailerStockSaleList.PageFragment)), null);
        tabsAdapter.AddTab(tabHost.NewTabSpec("L Y S M Sale").SetIndicator("L Y S M Sale"), Java.Lang.Class.FromType(typeof(retailerStockSale1List.PageFragment)), null);
        tabsAdapter.AddTab(tabHost.NewTabSpec("L M Sale").SetIndicator("L M Sale"), Java.Lang.Class.FromType(typeof(retailerStockSaleLMList.PageFragment)), null);
        tabsAdapter.AddTab(tabHost.NewTabSpec("Stock").SetIndicator("Stock"), Java.Lang.Class.FromType(typeof(retailerPhysicalStockList.PageFragment)), null);
        tabsAdapter.AddTab(tabHost.NewTabSpec("Order List").SetIndicator("Order List"), Java.Lang.Class.FromType(typeof(retailerOrderList.PageFragment)), null);
        tabsAdapter.AddTab(tabHost.NewTabSpec("Retailer Details").SetIndicator("Retailer Details"), Java.Lang.Class.FromType(typeof(retailerDetail.PageFragment)), null);

        if (bundle != null)
        {
            tabHost.SetCurrentTabByTag(bundle.GetString("tab"));
        }
    }


    protected override void OnSaveInstanceState(Bundle outState)
    {
        base.OnSaveInstanceState(outState);

        outState.PutString("tab", tabHost.CurrentTabTag);

    }

    protected class TabsAdapter : FragmentPagerAdapter, TabHost.IOnTabChangeListener, ViewPager.IOnPageChangeListener
    {
        private Context _context;
        private TabHost _tabHost;
        private ViewPager _viewPager;
        private List<TabInfo> _tabs = new List<TabInfo>();

        public class TabInfo
        {

            public string tag;
            public Class clss;
            public Bundle args;
            public Android.Support.V4.App.Fragment fragment { get; set; }

            public TabInfo(string _tag, Class _class, Bundle _args)
            {
                tag = _tag;
                clss = _class;
                args = _args;
            }
        }

        public class DummyTabFactory : Java.Lang.Object, TabHost.ITabContentFactory
        {
            private Context _context;

            public DummyTabFactory(Context context)
            {
                _context = context;
            }

            public View CreateTabContent(string tag)
            {
                var v = new View(_context);
                v.SetMinimumHeight(0);
                v.SetMinimumWidth(0);
                return v;
            }
        }

        public TabsAdapter(FragmentActivity activity, TabHost tabHost, ViewPager pager)
            : base(activity.SupportFragmentManager)
        {
            _context = activity;
            _tabHost = tabHost;
            _viewPager = pager;
            _tabHost.SetOnTabChangedListener(this);
            _viewPager.Adapter = this;
            _viewPager.SetOnPageChangeListener(this);

        }


        public void AddTab(TabHost.TabSpec tabSpec, Class clss, Bundle args)
        {
            tabSpec.SetContent(new DummyTabFactory(_context));
            var tag = tabSpec.Tag;

            var info = new TabInfo(tag, clss, args);

            _tabs.Add(info);
            _tabHost.AddTab(tabSpec);
            NotifyDataSetChanged();
        }

        public override int Count
        {
            get
            {
               return _tabs.Count;
            }
        }

        public override Android.Support.V4.App.Fragment GetItem(int position)
        {
            var info = _tabs[position];
            return Android.Support.V4.App.Fragment.Instantiate(_context, info.clss.Name, info.args);
        }

        public void OnTabChanged(string tabId)
        {
            int position ;
            position = _tabHost.CurrentTab;    
            _viewPager.CurrentItem = position;
        }

        public void OnPageScrolled(int position, float positionOffset, int positionOffsetPixels)
        {

        }

        public void OnPageSelected(int position)
        {
            var widget = _tabHost.TabWidget;
            var oldFocusability = widget.DescendantFocusability;
            widget.DescendantFocusability = DescendantFocusability.BlockDescendants;
            _tabHost.CurrentTab = position;
            widget.DescendantFocusability = oldFocusability;
        }



    }
}
protectedoverride void OnCreate(捆绑包)
{
base.OnCreate(bundle);
tabHost=findviewbyd(Android.Resource.Id.tabHost);
tabHost.Setup();
viewPager=FindViewById(Resource.Id.pager);
tabsAdapter=新的tabsAdapter(this、tabHost、viewPager);
tabsAdapter.AddTab(tabHost.NewTabSpec(“Sale”).SetIndicator(“Sale”),Java.Lang.Class.FromType(typeof(retailerStockSaleList.PageFragment)),null);
tabsAdapter.AddTab(tabHost.NewTabSpec(“L Y S M Sale”).SetIndicator(“L Y S M Sale”)、Java.Lang.Class.FromType(typeof(retailerStockSale1List.PageFragment))、null);
tabsAdapter.AddTab(tabHost.NewTabSpec(“L M Sale”).SetIndicator(“L M Sale”)、Java.Lang.Class.FromType(typeof(retailerStockSaleLMList.PageFragment)),null);
tabsAdapter.AddTab(tabHost.NewTabSpec(“Stock”).SetIndicator(“Stock”),Java.Lang.Class.FromType(typeof(RetailerPhysicalTockList.PageFragment)),null);
tabsAdapter.AddTab(tabHost.NewTabSpec(“订单列表”).SetIndicator(“订单列表”),Java.Lang.Class.FromType(typeof(retailerOrderList.PageFragment)),null);
tabsAdapter.AddTab(tabHost.NewTabSpec(“零售商详细信息”).SetIndicator(“零售商详细信息”),Java.Lang.Class.FromType(typeof(retailerDetail.PageFragment)),null);
if(bundle!=null)
{
tabHost.SetCurrentTabByTag(bundle.GetString(“tab”);
}
}
受保护的覆盖无效OnSaveInstanceState(包超出状态)
{
base.OnSaveInstanceState(超出状态);
PutString(“tab”,tabHost.CurrentTabTag);
}
受保护类TabsAdapter:FragmentPagerAdapter、TabHost.IOnTabChangeListener、ViewPager.IOnPageChangeListener
{
私人语境(private Context)(私人语境);;
私有TabHost _TabHost;
私用阅览器(ViewPager);;
私有列表_tabs=新列表();
公共类TabInfo
{
公共字符串标签;
公共类CLS;
公共包args;
public Android.Support.V4.App.Fragment片段{get;set;}
公共选项卡信息(字符串标记、类、绑定参数)
{
标签=_标签;
clss=_类;
args=_args;
}
}
公共类DummyTabFactory:Java.Lang.Object、TabHost.ITabContentFactory
{
私人语境(private Context)(私人语境);;
公共DummyTabFactory(上下文)
{
_上下文=上下文;
}
公共视图CreateTabContent(字符串标记)
{
var v=新视图(_上下文);
v、 设置最小高度(0);
v、 设置最小宽度(0);
返回v;
}
}
公共TabsAdapter(FragmentActivity活动、TabHost TabHost、ViewPager寻呼机)
:base(activity.SupportFragmentManager)
{
_上下文=活动;
_tabHost=tabHost;
_viewPager=寻呼机;
_tabHost.SetOnTabChangedListener(此);
_viewPager.Adapter=this;
_viewPager.SetOnPageChangeListener(此);
}
public void AddTab(TabHost.TabSpec TabSpec,类cls,Bundle args)
{
tabSpec.SetContent(新的DummyTabFactory(_上下文));
var tag=tabSpec.tag;
var info=新的TabInfo(标签、clss、参数);
_选项卡。添加(信息);
_tabHost.AddTab(tabSpec);
NotifyDataSetChanged();
}
公共覆盖整数计数
{
得到
{
返回_tabs.Count;
}
}
public override Android.Support.V4.App.Fragment GetItem(int位置)
{
var信息=_选项卡[位置];
返回Android.Support.V4.App.Fragment.Instantiate(_context,info.clss.Name,info.args);
}
已更改的公共无效项(字符串选项卡ID)
{
内部位置;
位置=_tabHost.CurrentTab;
_viewPager.CurrentItem=位置;
}
已滚动页面上的公共无效(int-position、float-positionOffset、int-positionOffsetPixels)
{
}
已选择页面上的公共无效(内部位置)
{
var widget=\u tabHost.TabWidget;
var oldFocusability=widget.degenantFocusability;
widget.degenantfocusability=degenantfocusability.blocksubstands;
_tabHost.CurrentTab=位置;
widget.degenantfocusability=oldFocusability;
}
}
}

}

您是否尝试过tabhost的setcurrentTab方法检查此项,使用“tabhost.setcurrentTab(tabIndex);”如何?