线性布局层次结构和对齐问题

时间:2015-03-14 17:38:06

标签: java android alignment android-linearlayout center

我在父XML中有一些代码,如下所示:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            android:id="@+id/header_parent_layout"
            layout="@layout/common_header_layout" />

        <include
            android:id="@+id/title_header_layout"
            layout="@layout/title_header_layout" />

        <LinearLayout
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" />
    </LinearLayout>

然后我有一个另外的xml,我想在LinearLayout中添加id:内容布局在第一个xml由xml下面膨胀:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:customviews="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<FrameLayout
    android:id="@+id/agenday_account_icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal">
    <!-- More Code -->
</FrameLayout>

我已经在膨胀的xml布局中设置了center_vertical gravity,但它始终显示在顶部。任何人都可以帮忙解决这个问题。

以下代码是我如何添加它:

View view = getLayoutInflater().inflate(R.layout.second, null);
    if (view != null) {
        mContentContainer.addView(view);
    }

mContentContainer是父级。

2 个答案:

答案 0 :(得分:1)

我有这个想法: 将content LinearLayout属性更改为:

<LinearLayout
            android:id="@+id/content"
            android:layout_width="match_parent"
            android:layout_weight="1"
            android:layout_height="0dp"
            android:gravity="center_vertical"
            android:orientation="vertical" />

答案 1 :(得分:1)

只需向id:content LinearLayout添加重力属性,即其中的内容保持居中。像这样:

<LinearLayout
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical" />