Пользовательский фон кнопки не отображается в Xamarin Android

#android #visual-studio #xamarin

Вопрос:

Я создал пользовательский xml-файл со следующим кодом:

 <?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="false">
    <layer-list>
      <item>
        <shape>
          <stroke android:width="5dp" android:color="@color/colorAccent"/>
          <corners android:radius="0dp"/>
        </shape>
      </item>
    </layer-list>
  </item>

  <item android:state_pressed="true">
    <layer-list>
      <item>
        <shape>
          <stroke android:width="5dp" android:color="@color/colorAccent"/>
          <corners android:radius="0dp"/>
        </shape>
      </item>
    </layer-list>
  </item>
</selector>
 

И в моем activity_main.xml У меня есть следующая кнопка:

 <Button
    android:background="@drawable/buttonname"
    android:textColor="@color/colorAccent"
    android:text="Next"
    android:layout_marginVertical="30dp"
    android:layout_gravity="center"
    android:layout_width="200dp"
    android:layout_height="50dp"/>
 

Если я наведу курсор @drawable/buttonname мыши, я увижу свой предполагаемый дизайн, но вместо дизайна фон моей кнопки colorPrimary -мой из папки «Стили», как в предварительном просмотре в Visual Studio, так и при его эмуляции. Я уже несколько раз перезапускал Visual Studio, но безрезультатно. Я что-то забыл? Есть ли какое-то решение этой проблемы?

Любая помощь приветствуется.

Комментарии:

1. Из xml опубликованного вами файла мы видим, что вы настроили все два состояния в цвет colorAccent , который также согласуется с результатом. Но я также нахожу, что вы устанавливаете android:textColor colorAccent значение, при котором текст становится невидимым, потому что его цвет шрифта совпадает с цветом фона. Какого эффекта вы хотите добиться?

2. Я хочу, чтобы кнопка была прозрачной, кроме границы и текста.

Ответ №1:

Фон работает, если я изменяю кнопку на текстовое представление и после того, как я вставил android:gravity="center" тег, у него будет нужный макет.