2016-09-15 75 views
0

我在android中測試樣式,我似乎無法繼承layout_width或height。我不能繼承layout_width和高度

這是我的價值觀styles.xlm

<resources> 
    <style name="AppThemeApp" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="android:textColor">#002AFF</item> 
     <item name="android:layout_width">match_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
    </style> 
    <style name="AppThemeAct" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="android:textColor">#002AFF</item> 
    </style> 
    <style name="stl_button" parent="@android:style/TextAppearance.Medium"> 
     <item name="android:layout_width">match_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:textColor">#002AFF</item> 
     <item name="android:typeface">serif</item> 
    </style> 
    <style name="stl_button.bold"> 
     <item name="android:textStyle">bold</item> 
    </style> 
</resources> 

這是我的佈局/ main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <Button 
     android:id="@+id/cmd_OpenPlaces" 
     style="@style/stl_button.bold" 
     android:text="@string/str_cmdOpenPlaces" /> 
    <Button 
     android:id="@+id/OpenSettings" 
     style="@style/stl_button" 
     android:text="@string/str_cmdOpenSettings" /> 
</LinearLayout> 

,這是我的manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.programs.squik.myplaces"> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppThemeApp"> 
     <activity 
      android:name=".MainActivity"> 
      <intent-filter> 
       <action 
        android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".EditPlacesActivity"> 
     </activity> 
    </application> 
</manifest> 

風格對於OpenSettings看起來不錯;然而,cmd_OpenPlaces的抱怨沒有layout_width和height,但是這應該從stl_button繼承。

我得到這個

<Button> does not set the required layout_heigth attribute... 

我缺少什麼?

謝謝

+0

這不是抱怨任何我測試過你的代碼。 – Nepster

+0

謝謝。我忘了添加清單,因爲你說它沒有給你的問題,我去了並擺弄它,顯然我的問題是主題的名稱。它不會採用AppThemeApp。它必須是AppTheme。現在的問題是如何定義多個主題並使用它們中的任何一個?我覺得我仍然錯過了一些東西。我應該能夠定義多個主題。 – user2368631

+0

在創建AppThemeApp和AppThemeAct時創建主題,並在清單中的活動標記中設置主題。或者也可以通過編程方式設置主題。您可以一次將一個主題與某個活動相關聯。並確保您創建的主題適合您的活動。因爲某些活動需要actionBar,所以不要在沒有actionBar的情況下使用任何主題 – Nepster

回答

0

嗯,我想我的問題。

android studio編輯器在佈局設計視圖上有一個工具,它將佈局與主題相關聯,無論我在清單中有什麼,並且它還根據分配給它的主題驗證佈局的xml。

這就是爲什麼它給錯誤;但是,一旦我安裝並運行應用程序,它工作得很好。它也解釋了爲什麼佈局設計不會根據我在清單上設置的內容而改變。