Подтвердить что ты не робот

Switchcompat не отображает коммутатор

Я пытаюсь использовать последний appcompat, который был обновлен для материального дизайна в моем приложении, чтобы показать представление переключателя, отображаемое в Lollipop (http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design-for-pre.html), проблема заключается в том, что переключатель не отображается. Мой SDKmin равен 14, а max - 21. Я использую приведенный ниже код в макете:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/fragment_scheduler"
    tools:context="com.stackoverflow.ranjith.androidprojdel.SchedulerUI">

<android.support.v7.widget.SwitchCompat
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="switch"
        app:showText="false" />

    <Button
        android:layout_width="match_parent"
        android:text="start"
        android:id="@+id/start"
        android:layout_height="wrap_content" />
</LinearLayout>

build.gradle:

dependencies {
    compile 'com.android.support:cardview-v7:+'
    compile 'com.android.support:recyclerview-v7:+'
    compile 'com.android.support:palette-v7:+'
    compile 'com.android.support:support-v4:+'
    compile "com.android.support:appcompat-v7:21.0.+"
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
4b9b3361

Ответ 1

У меня была такая же проблема сегодня, но каким-то образом ее switchcompat работал в моем примере. Я думаю, что есть проблема с стилем app, его родительский должен быть установлен:

Theme.AppCompat

Ответ 2

Я не уверен, что это ошибка в библиотеке поддержки, но вы должны убедиться, что контекст для вашего надувного устройства макета является тематическим.

  • Убедитесь, что ваша тема действий Theme.AppCompat как родительская
  • Если вы используете inflate SwitchCompat в ListView или RecyclerView, вы должны убедиться, что созданный вами экземпляр LayoutInflater и его использование в вашем адаптере создается с тематическим контекстом. Вы можете получить тематический контекст, вызвав: Activity.getSupportActionBar(). GetThemedContext()

Ответ 3

В качестве альтернативы вы можете использовать

android:theme="@style/Theme.AppCompat"

В вашем управлении