2011-02-09 67 views
17

我有一個拒絕應用於活動的主題 - 沒有應用任何樣式。如果我不爲<Button>提供layout_width/layout_height屬性也得到一個運行時錯誤,表明沒有被施加Button類。未設置Android主題

/res/values/themes.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="Theme" parent="android:style/Theme.Black"> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:buttonStyle">@style/Button</item> 
     <item name="android:windowBackground">@color/page_background_light</item> 
     <item name="android:textAppearance">@style/TextAppearance</item> 
    </style> 
</resources> 

/res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="TextAppearance" parent="@android:style/TextAppearance"> 
     <item name="android:textSize">12sp</item> 
     <item name="android:textColor">@color/darkblue</item> 
    </style> 
    <style name="Button" parent="@android:style/Widget.Button"> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
     <!--<item name="android:textColor">#3C2F4F</item> 
     <item name="android:textSize">20dip</item>--> 
    </style> 
</resources> 

和相關艙單

<application android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:theme="@style/Theme"> 

我錯過了什麼明顯的錯誤?

+0

我正在處理完全相同的問題。你確定你可以把主題放在單獨的文件中嗎?我試圖設置主題爲活動(而不是應用程序),我也嘗試應用程序onStart - 沒有運氣... – katit 2011-05-24 18:00:01

+0

嗯。我認爲我們有更大的問題。我試圖從父=「android:Theme.Light.NoTitleBar.Fullscreen」繼承,我得到了我的活動全屏。但我的按鈕和ListView樣式仍然沒有應用..所以,它似乎是主題「應用」,但不是所有的內部項目 – katit 2011-05-24 18:19:23

回答

0

只是出於好奇。嘗試將您的主題重命名爲FooBar等其他內容。

要說明這裏很明顯,但要確保您的按鈕是使用合適的款式。

3

我不得不明確定義主題爲每<activity>

0

編輯:我不確定這是否只是一個錯字,但是在您的主題中,您錯誤地引用了Android的Theme.Black樣式。您的代碼表示:

<style name="Theme" parent="android:style/Theme.Black"> 

當它應該說:

<style name="Theme" parent="@android:style/Theme.Black"> 

我覺得像皮棉或編譯器會在您樹皮,運行應用程序之前,但也許這將有助於。

+1

只要你的XML文件在值文件夾中一切都應該沒問題,文件的名稱應該沒有什麼區別。 – 2012-09-25 15:02:14

2

According to this answer,似乎不可能通過樣式提供layout_widthlayout_height。雖然它編譯,它引發的例外是:

E/AndroidRuntime(4117): java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.example/com.example.MainActivity}: 
java.lang.RuntimeException: Binary XML file line #79: You must supply a 
layout_width attribute. 

我不知道這是爲什麼,但可能有解決方法。 As this question suggests,您可以提供參考作爲寬度和高度參數。

同樣,我的經驗是Android不正確支持通過樣式提供部件的尺寸。

20

我一直在爲此付出努力,並認爲我終於找到了可能是這個問題 - 也許它是一樣的。

我曾在res\values文件夾中定義的自定義主題,但不能在values-v11values-v14文件夾。我認爲這使得在某些設備(特別是我正在測試的2臺設備!)中,主題無法應用,因爲它不存在。

我現在看到在我的自定義主題中設置的屬性(應用程序級別)生效。