是否可以在RelativeLayout内部放置另一个组件?

时间:2015-03-11 16:33:31

标签: android

我想为custom title

创建Dialog
public class MessageDialogView extends Builder {

    private View view, titreView;

    @SuppressLint("NewApi")
    public MessageDialogView(Context context,LayoutInflater inflater) {
        super(context);
        view = inflater.inflate(R.layout.msg_dialog, null);
        this.setView(view);
        titreView = inflater.inflate(R.layout.custom_dialog_title, null);
        this.setCustomTitle(titreView);
    }
    ...
}

自定义标题的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    style="@style/ImpotsTitleStyle"
    android:layout_marginBottom="0dp"
    android:padding="0dp">
    <ImageView
        android:id="@+id/icone"
        android:src="@drawable/ic_action_warning"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
    <TextView 
        android:id="@+id/titre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center_vertical"
        style="@style/ImpotsStyleText"/>
</LinearLayout>

在运行时,标题文字不是&#34;居中&#34;在整个标题栏的上下文中,因为左侧有图标!

enter image description here

因此,如果我将图标和标题的文字放在RelativeLayout中,是否可以将TextView放在图标下方?如果是这样的xml属性适用于那个?

1 个答案:

答案 0 :(得分:1)

是的,RelativeLayout是正确的解决方案。您可以将ImageView对齐到左侧,然后让TextView同时居中。我已修改您的代码,以指明您正确的方向。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/ImpotsTitleStyle"
    android:layout_marginBottom="0dp"
    android:padding="0dp">

    <ImageView
        android:id="@+id/icone"
        android:src="@drawable/ic_action_warning"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"/>

    <TextView 
        android:id="@+id/titre"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        style="@style/ImpotsStyleText"/>
</RelativeLayout>