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