Xamarin表单:是否可以在Android中添加披露指标?

时间:2017-10-28 11:46:33

标签: android xamarin xamarin.forms

enter image description here

我有TextCell在我的Xamarin Forms应用的iOS端添加了一个披露指标:

<TextCell Text="Japanese" StyleId="disclosure"/>

我也想为android方面做同样的事情,但我似乎无法找到任何自定义渲染器来做这样的事情。

有没有人能够做到这一点?如果有人能指出我那个方向,我真的很感激。

1 个答案:

答案 0 :(得分:7)

根据design guidelines,建议不要在Android中的订单项上使用右指向的插入符号(披露指示符)。

  

不要在订单项上使用右指向的插入符号

     

其他平台上的一个常见模式是在订单项上显示右向插入符号,允许用户深入钻取其他内容。

     

Android不会在下钻订单项上使用此类指标。避免它们与平台保持一致,以免让用户猜测这些插入符的含义。

enter image description here

编辑1:

但是如果您仍想添加指标,可以使用图像。

Download the icon并添加为drawable到android项目。并将渲染器注册如下:

[assembly: ExportRenderer(typeof(TextCell), typeof(StandardTextCellRenderer))]
namespace AppNamespace.Droid
{
    public class StandardTextCellRenderer : TextCellRenderer
    {

        protected override Android.Views.View GetCellCore(Cell item, Android.Views.View convertView, Android.Views.ViewGroup parent, Android.Content.Context context)
        {
            var cell = base.GetCellCore(item, convertView, parent, context);

            switch (item.StyleId)
            {
                case "disclosure":
                    var bmp = BitmapFactory.DecodeResource(cell.Resources, Resource.Drawable.ic_chevron_right);
                    var bitmapDrawable = new BitmapDrawable(cell.Resources, Bitmap.CreateScaledBitmap(bmp, 50, 50, true));
                    bitmapDrawable.Gravity = GravityFlags.Right | GravityFlags.CenterVertical;
                    cell.SetBackground(bitmapDrawable);
                    break;
            }
            return cell;
        }
    }
}