2016-11-29 3 views
1

Я пытаюсь создать круговую кнопку с зеленой рамкой, используя Xamarin.Forms, используя метод, который я использовал в предыдущих проектах, добавляя значения BorderRadius, BorderColour и т. Д. К Button элемент.Граница игнорируется на Android - Xamarin.Forms

Пожалуйста, обратите внимание на следующий код:

Button goButton = new Button 
{ 
    Text = "GO!", 
    TextColor = Color.White, 
    FontSize = 75, 
    HeightRequest = 200, 
    WidthRequest = 200, 
    BorderRadius = 100, 
    BorderWidth = 10, 
    BorderColor = Color.Green, 
    BackgroundColor = Color.Red 
}; 

Приведенный выше код дает мне следующее, нежелательная выход:

enter image description here

Я попытался переписывания в XAML и имели один и тот же вопрос , Я также проверил, что моя версия Xamarin (и пакетов NuGet Xamarin.forms) обновлена. Однако в версии iOS все выглядит правильно (первый раз для всего, что я полагаю!)

Любая помощь в поиске проблемы и устранении этой проблемы была бы весьма признательна.

Предложенное Edit:

Пожалуйста, найдите ниже моей styles.xml

<?xml version="1.0" encoding="utf-8" ?> 
<resources> 
    <style name="MainTheme" parent="MainTheme.Base"> 
    </style> 

    <!-- Base theme applied no matter what API --> 
    <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> 

     <!--If you are using revision 22.1 please use just windowNoTitle. Without android:--> 
     <item name="windowNoTitle">true</item> 

     <!--We will be using the toolbar so no need to show ActionBar--> 
     <item name="windowActionBar">false</item> 

     <!-- Set theme colors from http://www.google.com/design/spec/style/color.html#color-color-palette --> 

     <!-- colorPrimary is used for the default action bar background --> 
     <item name="colorPrimary">#2196F3</item> 

     <!-- colorPrimaryDark is used for the status bar --> 
     <item name="colorPrimaryDark">#1976D2</item> 

     <!-- colorAccent is used as the default value for  colorControlActivated 
    which is used to tint widgets --> 
     <item name="colorAccent">#FF4081</item> 

     <!-- You can also set colorControlNormal, colorControlActivated 
    colorControlHighlight and colorSwitchThumbNormal. --> 
     <item name="windowActionModeOverlay">true</item> 

     <item name="android:datePickerDialogTheme">@style/AppCompatDialogStyle</item> 
    </style> 

    <style name="AppCompatDialogStyle" parent="Theme.AppCompat.Light.Dialog"> 
     <item name="colorAccent">#FF4081</item> 
    </style> 

</resources> 

ответ

1

Bordered Button сек отлично работает для меня ... Может быть, попробовать некоторые более разумные значения:

Button button = new Button { 
    BorderWidth = 1, 
    BorderColor = Color.Green, 
    BackgroundColor = Color.Transparent, 
    Text = "GO!", 
    TextColor = Color.White, 
} 

Вот и все, что у меня есть в моем Button и на границе появляется нормально. Удивительно, если значение BackgroundColor = Color.Transparent будет иметь для вас значение.

* Редактировать: добавив комментарий в качестве ответа. Согласно сообщению this, добавив совершенно пустой пользовательский визуализатор для Button может помочь:

[assembly: ExportRenderer(typeof(Xamarin.Forms.Button), typeof(GenericButtonRenderer))] 

namespace Express.CustomRenderers { 
    public class GenericButtonRenderer : Xamarin.Forms.Platform.Android.ButtonRenderer { } 
} 
+0

К сожалению, я точно такой же вопрос, я изначально был прозрачным и перенес ее в красный цвет, так что показывает понятнее скриншот. – Aphire

+0

@Aphire Я собираюсь предположить, что это проблема с темой Android и/или стилями, которые вы добавили. Возможно, разместите код 'Styles.xml', который у вас есть в каталогах'/values ​​/ 'или'/values-21/'. – hvaughan3

+0

См. Мое редактирование, у меня нет значений-21 dir – Aphire

Смежные вопросы