Dpe*_*nha 0 xamarin.android xamarin.forms
如果我有更多的选项卡而不适合屏幕,在 Android 上我可以将选项卡模式设置为可滚动。但是,如果我以编程方式将所选项目(使用 SelectedItem 或 CurrentPage)设置为屏幕外的选项卡,在 Android 上,选项卡不会滚动。
在 UWP 上它工作正常,在 iOS 上它不起作用,因为它使用“更多”按钮。但在 Android 上,它会选择正确的 Child,显示其内容,但不会将选项卡滚动到正确的选项卡(如果它不在屏幕上)。
如果我手动滚动选项卡,则会选择正确的选项卡,但这种用户体验非常糟糕。
显然是 Xamarin Forms 的一个错误,但我不希望很快有任何变化,所以关于如何以编程方式滚动选项卡的任何想法?
这是带有示例应用程序的错误报告以查看问题。
但是,如果我以编程方式将所选项目(使用 SelectedItem 或 CurrentPage)设置为屏幕外的选项卡,在 Android 上,选项卡不会滚动。像这样的代码:
您可以在 Xamarin.Android 中编写TabbedPageRenderer,将选项卡滚动到右侧选项卡。
public class MyTabbedPageRenderer : TabbedPageRenderer
{
private TabLayout tabLayout = null;
protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e)
{
base.OnElementChanged(e);
this.tabLayout = (TabLayout)this.GetChildAt(1);
var selectPosition = this.tabLayout.SelectedTabPosition;
tabLayout.TabMode = TabLayout.ModeScrollable;
tabLayout.TabGravity = TabLayout.GravityFill;
Handler h = new Handler();
Action myAction = () =>
{
tabLayout.GetTabAt(selectPosition).Select();
};
h.PostDelayed(myAction, 1);
}
}
Run Code Online (Sandbox Code Playgroud)
影响 :
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |