在Visual Studio Xamarin.Android中设置ActionBar默认选中指定标签页
默认选中ActionBar指定标签页(Xamarin.Android)
很简单,你只需要在所有标签页都添加到ActionBar之后,调用ActionBar的SelectTab方法,就能指定默认选中的标签,完全不需要改变标签的添加顺序。
有两种常用的实现方式,选哪种都可以:
方法1:通过标签索引选中
每个标签页在添加时会按顺序获得一个索引(从0开始),你可以直接通过索引定位到目标标签:
- "Animals"是第1个标签,索引为
0 - "Motorcycle"是第2个标签,索引为
1
在你所有ActionBar.AddTab(tab);代码之后,添加一行:
// 默认选中"Motorcycle"(索引1) ActionBar.SelectTab(ActionBar.GetTabAt(1)); // 如果要默认选中"Animals",就用索引0: // ActionBar.SelectTab(ActionBar.GetTabAt(0));
方法2:保存目标Tab对象直接选中
如果你不想记索引,可以在创建目标标签时把它保存为变量,最后直接选中:
修改你的代码如下:
SetContentView(Resource.Layout.Main); // 创建并添加Animals标签 ActionBar.Tab tab = ActionBar.NewTab(); tab.SetText("Animals"); tab.SetIcon(Resource.Drawable.tab1_icon); tab.TabSelected += (sender, args) => { /* 你的逻辑 */ }; ActionBar.AddTab(tab); // 保存Motorcycle标签的引用 ActionBar.Tab motorcycleTab = ActionBar.NewTab(); motorcycleTab.SetText("Motorcycle"); // 原代码这里漏了引号,记得补上 motorcycleTab.SetIcon(Resource.Drawable.tab2_icon); motorcycleTab.TabSelected += (sender, args) => { /* 你的逻辑 */ }; ActionBar.AddTab(motorcycleTab); // 创建并添加Cars标签 tab = ActionBar.NewTab(); tab.SetText("Cars"); // 同样补上引号 tab.SetIcon(Resource.Drawable.tab2_icon); tab.TabSelected += (sender, args) => { /* 你的逻辑 */ }; ActionBar.AddTab(tab); // 默认选中Motorcycle标签 ActionBar.SelectTab(motorcycleTab); // 如果要选Animals,就把上面的换成: // ActionBar.SelectTab(tab); // 这里的tab是第一个创建的Animals标签对象
注意:一定要确保在所有标签都添加完成后再调用
SelectTab,否则可能找不到目标标签或者选中无效。
另外,你原代码里的SetText(Motorcycle)和SetText(Cars)应该是字符串常量,记得加上双引号,不然会编译报错哦。
内容的提问来源于stack exchange,提问作者neneo
相关产品推荐
相关产品推荐

