Xamarin.Forms + 主要细节 + Android 上的 TalkBack
Xamarin.Forms + Master Detail + TalkBack on Androind
我为 NavigationPageRenderer 制作了自定义呈现器,但我无法更改汉堡菜单按钮 ContentDescription。它将汉堡菜单按钮读取为 "OK" 按钮。你有什么想法吗?
这是 Android 平台中的 ImageButton
。所以你可以改变这个汉堡包按钮的图像来源来实现这个功能。
您可以使用 Custom Renderers 创建自定义 MasterDetailPage
,这里是一个示例:
[assembly: ExportRenderer(typeof(MasterDetailPage), typeof(MyMasterDetailRenderer))]
...
public class MyMasterDetailRenderer : MasterDetailPageRenderer
{
public MyMasterDetailRenderer(Context context) : base(context)
{
}
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
for (var i = 0; i < toolbar.ChildCount; i++)
{
var imageButton = toolbar.GetChildAt(i) as ImageButton;
var drawerArrow = imageButton?.Drawable as DrawerArrowDrawable;
if (drawerArrow == null)
continue;
imageButton.SetImageDrawable(Context.GetDrawable(Resource.Mipmap.hamburger));
}
}
}
我为 NavigationPageRenderer 制作了自定义呈现器,但我无法更改汉堡菜单按钮 ContentDescription。它将汉堡菜单按钮读取为 "OK" 按钮。你有什么想法吗?
这是 Android 平台中的 ImageButton
。所以你可以改变这个汉堡包按钮的图像来源来实现这个功能。
您可以使用 Custom Renderers 创建自定义 MasterDetailPage
,这里是一个示例:
[assembly: ExportRenderer(typeof(MasterDetailPage), typeof(MyMasterDetailRenderer))]
...
public class MyMasterDetailRenderer : MasterDetailPageRenderer
{
public MyMasterDetailRenderer(Context context) : base(context)
{
}
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
for (var i = 0; i < toolbar.ChildCount; i++)
{
var imageButton = toolbar.GetChildAt(i) as ImageButton;
var drawerArrow = imageButton?.Drawable as DrawerArrowDrawable;
if (drawerArrow == null)
continue;
imageButton.SetImageDrawable(Context.GetDrawable(Resource.Mipmap.hamburger));
}
}
}