2014-10-25 22 views
13

Tôi đang cố gắng sử dụng appcompat mới nhất đã được cập nhật cho thiết kế material design trong ứng dụng của tôi để hiển thị chế độ xem chuyển đổi như được hiển thị trong Lollipop (http://android-developers.blogspot.in/2014/10/appcompat-v21-material-design-for-pre.html), vấn đề là công tắc không được hiển thị. SDKmin của tôi là 14 và tối đa là 21. Tôi đang sử dụng mã dưới đây vào cách bố trí:Switchcompat không hiển thị Switch

<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']) 
} 
+0

Đây có phải là toàn bộ bố trí? Cái gì là SwitchCompat đang được thêm vào? – ianhanniballake

+0

Không..khác cũng là nút trong bố cục. Nó nằm trong linearlayout. Tôi đã thêm toàn bộ bố cục – Psypher

+0

Bất kỳ chế độ xem nào về cách làm việc này? – Psypher

Trả lời

14

tôi đã cùng một vấn đề ngày nay nhưng bằng cách nào đó nó switchcompat làm việc trong mẫu của tôi . Tôi nghĩ rằng có vấn đề với phong cách ứng dụng, nó cha mẹ nên được đặt thành:

Theme.AppCompat 
+0

Cảm ơn ..đã hoạt động. – Psypher

+4

Đây chính xác là những gì tôi đã đặt và nó không hoạt động trên bất kỳ thiết bị KitKat nào trước. Chế độ xem chỉ không hiển thị - không có văn bản, không chuyển đổi, không có gì. – psyren89

+1

Tôi có cùng một vấn đề! Tôi đã thiết lập các hoạt động Theme để Theme.AppCompat (tôi cũng đã thử với tất cả các chủ đề availebale, như Theme.AppComapt.Light.DarkActionBar) tiếc là nó không hoạt động! – sockeqwe

19

Tôi không chắc đây có phải là lỗi trong thư viện hỗ trợ hay không, nhưng bạn phải đảm bảo rằng ngữ cảnh cho inflater layout của bạn là một chủ đề theo chủ đề.

  1. Hãy chắc chắn rằng các hoạt động của bạn chủ đề Theme.AppCompat như mẹ
  2. Nếu bạn sử dụng thổi phồng SwitchCompat trong ListView hoặc RecyclerView bạn phải đảm bảo rằng các LayoutInflater bạn nhanh chóng và sử dụng trong bộ chuyển đổi của bạn được tạo ra với bối cảnh theo chủ đề. Bạn có thể lấy bối cảnh theo chủ đề bằng cách gọi:. Activity.getSupportActionBar() getThemedContext()
+3

Chà ... chỉ là wow. Tôi đã sử dụng applicationContext vì tôi luôn sử dụng nó. Để thổi phồng nó với bối cảnh hoạt động đã làm các trick cho tôi. Cảm ơn! – JacksOnF1re

+1

Điều này dường như là ... Mặc dù tôi không thích hợp, vì nó không phù hợp với tôi để sử dụng ngữ cảnh hoạt động ... +1 – Joakim

+1

Tôi lãng phí một ngày với điều đó, tôi lặp lại cả một ngày! Những gì @ JacksOnF1re nói là vấn đề của tôi quá. Khi tôi khởi tạo bộ điều hợp, tôi đã chuyển 'getApplicationContext()', bây giờ tôi đã thay đổi nó thành MyActivity.this và nó hoạt động như một nét duyên dáng ... Điều đáng tiếc là tôi đã làm đúng và làm việc một thời gian, nhưng tôi đã làm một số thay đổi tại một số điểm ... – Apostrofix

1

Ngoài ra, bạn có thể sử dụng

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

On kiểm soát của bạn

Các vấn đề liên quan