将ImageView样式抽象为themes.xml的问题

时间:2014-01-30 02:40:52

标签: android android-layout

这是我原来的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="fill_horizontal">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:paddingRight="10dp"
        android:src="@drawable/ic_action_refresh"/>
</RelativeLayout>

我已将所有ImageView布局中的所有布局提取到themes.xml:

<style name="MenuButton" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_centerVertical">true</item>
    <item name="android:layout_alignParentRight">true</item>
    <item name="android:paddingRight">10dp</item>
</style>

然后我将上面ImageView的属性替换为:

<ImageView
        style="@style/MenuButton"
        android:src="@drawable/ic_action_refresh"/>

我的问题是:

  1. Idea中的设计预览主张无法解析MenuButton样式。
  2. 已在我的设备上部署并运行该应用,但未应用android:layout_centerVertical属性。该项目浮动到容器的顶部。
  3. 我是Android的新手,所以我很可能错过了一些基本的东西。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不要在样式中使用这些属性

<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>

可能会产生问题。