Quer colocar borda em um botão no Android usando Xamarin e não funciona nem a pau? Uma classe Custom Renderer é a solução.
Parece óbvio quando você já sabe como fazer.
Se você ainda tem que configurar Xamarin Forms na sua máquina veja meu outro POST:
Instalação e Configuração do Xamarin Forms no Visual Studio 2015
Eu estou usando o Xamarin Forms “portable” com XAML e Android API 23.
O XAML abaixo não funciona no Android.
<Button Text="Click Me" TextColor="Red" BackgroundColor="White" BorderColor="Red" BorderWidth="1" BorderRadius="3" VerticalOptions="Center" HorizontalOptions="Center"> </Button>
Para colocar borda em botão no Android é preciso criar uma classe Custom Renderer no projeto Droid:
using Xamarin.Forms.Platform.Android; using Xamarin.Forms; [assembly: ExportRenderer(typeof(Button), typeof(FSL.XF1.Droid.FlatButtonRenderer))] namespace FSL.XF1.Droid { public class FlatButtonRenderer : ButtonRenderer { protected override void OnDraw(Android.Graphics.Canvas canvas) { base.OnDraw(canvas); } protected override void OnElementChanged(ElementChangedEventArgs<Button> e) { base.OnElementChanged(e); } } }
Com Custom Renderer:
Sem Custom Renderer:
Parece simples certo? O código diz ao Xamarin Forms para renderizar todos os botões usando o comportamento nativo do Android e não o do Xamarin Forms. Com essa classe dá para customizar mais outras coisas além da borda.
Não é necessário criar um custom renderer para iOS.
Simples? Agora vamos para o próximo problema… 🙂
Bom é isso. Esperto que tenha ajudado.
Abaixo encontrará alguns links úteis.
Custom Renderer para borda em botão no Xamarin Forms
Custom Renderer: Perguntas, sugestões ou críticas são bem vindas. Boa sorte!
Faça download completo do código fonte no github. |