match_parent破坏完整的布局

时间:2016-02-26 14:42:50

标签: android android-layout layout

我有一个ImageButton的布局。我现在要做的是将TextView浮动在ImageButton的角落。我将ImageButton替换为:

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_weight="1"
        android:layout_gravity="center_vertical|center_horizontal"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:padding="5dp"
            android:text="12"
            android:textColor="@color/white"
            android:id="@+id/textView5"
            android:background="@drawable/textview_notify"
            android:layout_column="2"/>
        <ImageButton
            android:id="@+id/btnInspect"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:tag="inspect"
            android:onClick="btnInspect_onClick"
            android:contentDescription="@string/inspect"
            android:src="@drawable/inspect" />
    </RelativeLayout>

但是,当ImageButton设置为android:layout_wdith="wrap_content"时,我可以在视觉视图中看到RelativeLayout的宽度是我想要的宽度,{{1}只填充其中的一部分。

我认为将它设置为ImageButton会完全填满它。相反,它破坏了完整的布局。所有元素(此视图中有更多元素)都已消失。

如何在布局中用match_parent替换ImageButton

2 个答案:

答案 0 :(得分:1)

为什么不将图像添加为textview的drawable? 像这样

   <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:padding="5dp"
            android:text="12"
            android:textColor="@color/white"
            android:id="@+id/textView5"
            android:background="@drawable/textview_notify"
            android:drawableLeft="@drawable/inspect"
            android:layout_column="2"/>

这将是一种资源效率更高的方式,因为你提起的意见较少

答案 1 :(得分:0)

不应使用相对布局,而应使用FrameLayout来叠加2个视图