水平xml布局和layout_weight不能一起工作

时间:2015-11-04 21:24:17

标签: android xml android-layout layout

我正在尝试创建一个xml页面设计。 纵向上,我将整个屏幕划分为两个相等的部分。

在下半部分,我想拥有" Registrieren"底部的按钮。 这是正确显示的。 现在我遇到的问题是textview和Button不在一条水平线上。

我的XML代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:background="@color/colorPrimaryLight"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="2">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <ImageView android:id="@+id/fragment_registration_activity_image_view"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:paddingTop="20dp"
            android:adjustViewBounds="true"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/ic_ads"
            />

    </LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:weightSum="10"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="horizontal"
            android:paddingTop="20dp"
            android:paddingLeft="20dp"
            android:paddingRight="20dp"
            android:layout_weight="8"
            android:weightSum="9"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
           >
            <TextView android:id="@+id/text"
                android:layout_weight="6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAlignment="center"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:layout_gravity="center"
                android:background="@drawable/round_corner_textview"
                android:text="Hello," />

            <Button
                android:id="@+id/registration_button_scancode"
                android:layout_weight="3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:text="QR Code Scannen"
                />
        </LinearLayout>

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:orientation="vertical"
            android:layout_weight="2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="20dp"
            android:paddingRight="25dp"
            android:gravity="bottom|right">

            <Button
                android:id="@+id/registration_button_finish"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Registrieren"
                />

        </LinearLayout>

        </LinearLayout>
    </LinearLayout>

</LinearLayout>

截图当前的截图:

enter image description here

那么如何在一条水平线上获取textview和按钮呢?

2 个答案:

答案 0 :(得分:1)

你需要将android:layout_gravity设置为&#34; center&#34;或&#34; center_horizo​​ntal&#34;对彼此而言。你现在有&#34; center&#34;对于按钮,它将它放在应该是的部分的垂直中心。 TextView是&#34; center_horizo​​ntal&#34;它垂直和水平居中。让它们都统一,你会得到你想要的东西。

答案 1 :(得分:0)

layout_gravity的{​​{1}}更改为registration_button_scancode

有点像

center