Android Widget для Android: настройка Android: отслеживание приводит к тому, что большой палец и дорожка не отображаются

У меня возникли проблемы с настройкой вида виджета Android Switch. У меня есть пользовательские xml-чертежи, которые я хочу использовать для большого пальца (часть маленькой кнопки, которая обычно говорит «Вкл.» Или «Выкл.»), И дорожки (фон, который переместит большой палец). Когда я устанавливаю только большой палец с помощью android: thumb, он отлично работает. Когда я устанавливаю дорожку (независимо от того, установлен ли большой палец), переключатель полностью исчезает, и мне остается только текст.

Вот мой код, когда применяется только большой палец:

<com.blahblahblah.blah.CustomSwitch android:id="@+id/switch_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="Off" android:textOn="On" android:text="Something Awesome" android:textColor="@android:color/black" android:thumb="@drawable/custom_switch_thumb" /> 

Вот как это выглядит в окне предварительного просмотра:

Введите описание изображения здесь

И с использованием трека:

 <com.blahblahblah.blah.CustomSwitch android:id="@+id/switch_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOff="Off" android:textOn="On" android:text="Something Awesome" android:textColor="@android:color/black" android:track="@color/track_color" /> 

Окно предварительного просмотра с используемой дорожкой:

Введите описание изображения здесь

Для справки я использую Android Studio 0.2.3 на OSX 10.7.5.

Solutions Collecting From Web of "Android Widget для Android: настройка Android: отслеживание приводит к тому, что большой палец и дорожка не отображаются"

Я просто наткнулся на ту же проблему и нашел исправление в журнале HoloEverywhere . Вам нужно будет установить <size> для гибкой формы XML, которую вы используете.

Не работает (виджет есть, и я могу взаимодействовать с ним, но я не вижу его, он скрыт):

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/black_50" /> </shape> 

Работа (не добавленный <size> ):

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/black_50" /> <size android:width="56dp" android:height="20dp" /> </shape> 

В общем, для изменения изображения вам не нужно подклассифицировать элемент управления, который вы можете его стилизовать, например, с помощью атрибута style.

О вашей проблеме есть несколько элементов управления, которые ожидают рисования, а не простого цвета. В определении управления (часть xml) вы можете просто определить, что вы разрешаете ссылку, но вы не можете ограничить ее доступными ссылками. Поэтому просто избегайте использования цветов напрямую. Если вы не хотите добавлять изображение, вы также можете определить его с помощью xml, но обратите внимание, что это не работает во всех случаях.