Xamarin Forms-使用资源/布局中的相对布局的Android按钮

时间:2019-06-04 16:50:57

标签: android xamarin relativelayout

Visual Studio 2017(Visual Studio 2017) 所以我有一个使用Xamarin Forms的IOS和Android应用程序。 我已经将RelativeLayout文件下载到资源/布局中。

有没有一种方法可以在“自定义”按钮渲染器中使用此布局?

我们所有的表单都在Xamarin项目中,所以我不能只将其包含在片段中。

我是不是试图通过捏造在客户渲染器中使用死马来鞭打死马?

1 个答案:

答案 0 :(得分:0)

为您的自定义按钮创建一个视图渲染器。然后将其替换为您的本机布局:

[assembly: ExportRenderer(typeof(CustomButton), typeof(CustomButtonRenderer))]
namespace App.Droid
{
    public class CustomButtonRenderer : ViewRenderer<CustomButton, Android.Views.View>
    {
        Context _context;
        public CustomButtonRenderer(Context context) : base(context)
        {
            _context = context;
        }

        protected override void OnElementChanged(ElementChangedEventArgs<CustomButton> e)
        {
            base.OnElementChanged(e);

            if (Control == null)
            {
                SetNativeControl(getView());
            }
        }

        Android.Views.View getView()
        {
            return LayoutInflater.From(_context).Inflate(Resource.Layout.custom_layout, null);
        }
    }
}

最后,您可以使用XAML中的自定义控件,例如:

<StackLayout>
    <local:CustomButton />
</StackLayout>