我在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...
我错过了什么?
由于
答案 0 :(得分:0)
好吧,我想出了我的问题。
android studio编辑器在布局设计视图中有一个工具,它将布局与主题相关联,无论我在清单中有什么,它还根据分配给它的主题验证布局的xml。
这就是它出错的原因;但是,一旦我安装并运行应用程序,它就可以了。它还解释了为什么布局设计不会根据我在清单上设置的内容而改变。