我无法继承layout_width和height

时间:2016-09-15 04:25:42

标签: android-layout

我在android中测试样式,我似乎无法继承layout_width或height。

这是我的styles.xlm in values

<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>

这是我的layout / 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...

我错过了什么?

由于

1 个答案:

答案 0 :(得分:0)

好吧,我想出了我的问题。

android studio编辑器在布局设计视图中有一个工具,它将布局与主题相关联,无论我在清单中有什么,它还根据分配给它的主题验证布局的xml。

这就是它出错的原因;但是,一旦我安装并运行应用程序,它就可以了。它还解释了为什么布局设计不会根据我在清单上设置的内容而改变。