如何在Xamarin上使用原生Android XML?

时间:2016-08-06 10:49:53

标签: android xamarin xamarin.forms

我需要一个按钮,我可以设置自定义字体和颜色。我为字体创建了一个自定义渲染器,并将BackgroundColor设置为我需要的颜色,但问题是当我禁用按钮时,背景颜色不会改变。我找到了this解决方案,但我不知道如何在我的Xamarin Forms应用程序中使用它。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用 button_bg.xml 之类的名称将状态列表选择器保存在 Resources / drawable 目录中。然后在你的布局xml文件中,你可以像这样设置按钮的背景

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_bg"/>

请查看本指南使用资源:https://developer.xamarin.com/guides/android/application_fundamentals/resources_in_android/part_1_-_android_resource_basics/

修改

以上解决方案适用于经典的Xamarin Android,对于Xamarin Forms,您可以通过在自定义渲染器类中设置按钮的背景来实现相同的操作,如下所述: http://dailydotnettips.com/2016/03/05/applying-styles-for-xamarin-forms-control-in-android-from-xml-file/

public class CustomButtonRenderer : ButtonRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs&amp;lt;Xamarin.Forms.Button&amp;gt; e)
{
base.OnElementChanged(e);
var btn = this.Control as Android.Widget.Button;
btn?.SetBackgroundResource(Resource.Drawable.Style);
}
}

另一种方法是使用指南中描述的 Xamarin Forms全局样式https://developer.xamarin.com/guides/xamarin-forms/user-interface/styles/application/

还有 Xamarin动态样式,可让您更改样式:https://developer.xamarin.com/guides/xamarin-forms/user-interface/styles/dynamic/