Android 线性布局、布局和重力工作不正常

Android 线性布局、布局和重力工作不正常,android,android-layout,Android,Android Layout,我正在尝试在ScrollView中设计一个线性布局,因为当键盘被激活时,整个内容都会向上推 我遇到的XML代码问题: 我不明白的是,为什么第二个LinearLayout中的按钮没有分别位于LinearLayout的start和end上 因此,我希望进行最终设计,但我不知道如何使用线性布局来实现这一点: layout\u gravity旨在与FrameLayout一起使用,并使用layout\u gravity定义元素在封闭FrameLayout内的位置。对于LinearLayout,它

我正在尝试在ScrollView中设计一个线性布局,因为当键盘被激活时,整个内容都会向上推


我遇到的XML代码问题:


我不明白的是,为什么第二个
LinearLayout
中的按钮没有分别位于
LinearLayout
start
end

因此,我希望进行最终设计,但我不知道如何使用线性布局来实现这一点:
layout\u gravity
旨在与
FrameLayout
一起使用,并使用
layout\u gravity
定义元素在封闭
FrameLayout
内的位置。对于
LinearLayout
,它将被简单忽略
layout\u gravity
用于
FrameLayout
并定义元素的位置,该元素的
layout\u gravity
设置在封闭
FrameLayout
内。对于
LinearLayout
它将被忽略android:windowSoftInputMode=“stateVisible | adjustPan”


将其添加到各自活动中的AndroidManifest文件中。

android:WindowsOfInputMode=“stateVisible | adjustPan”

将此代码添加到各自活动中的AndroidManifest文件中。

尝试此代码

可以通过执行以下操作应用多个重力属性:

android:layout_gravity="top|center_horizontal"
要在父元素中对齐元素本身,您必须使用
android:layou gravity
来对齐元素的内容,比如文本视图中的文本,您可以使用
android:gravity

当元素之间需要额外的空间时,不必像使用
EditText
那样为元素提供超出所需的高度。只需添加一个
元素,即可在布局中提供轻量级的空白空间

以下是我如何将其应用于您的代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="#e0ab18"
                  android:orientation="vertical"
                  android:paddingBottom="@dimen/activity_vertical_margin"
                  android:paddingLeft="@dimen/activity_horizontal_margin"
                  android:paddingRight="@dimen/activity_horizontal_margin"
                  android:paddingTop="@dimen/activity_vertical_margin"
                  tools:context="com.FET.leonardo.scurcola.NameSelection">

        <TextView
            android:id="@+id/whoMaster"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="top|center_horizontal"
            android:gravity="center_horizontal"
            android:layout_marginTop="25dp"
            android:layout_weight="5"
            android:text="@string/whoMaster"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="50sp"/>

        <EditText
            android:id="@+id/names"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:ems="10"
            android:hint="@string/master"
            android:inputType="textPersonName"
            android:textColor="@color/white"
            android:textColorHighlight="@color/white"
            android:textColorHint="@color/white"/>


        <Space
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2"/>

        <TextView
            android:id="@+id/playersLeft"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_weight="3"
            android:text="@string/zero"
            android:textColor="@color/white"
            android:textSize="50sp"/>


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="bottom|center_horizontal"
            android:layout_weight="2"
            android:orientation="horizontal">


            <Button
                android:id="@+id/back"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end|center"
                android:layout_marginRight="12dp"
                android:enabled="false"
                android:onClick="onClick"
                android:text="@string/back"
                android:textColor="#e0ab18"/>

            <Button
                android:id="@+id/next"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="start|center"
                android:layout_marginLeft="12dp"
                android:onClick="onClick"
                android:text="@string/next"
                android:textColor="#e0ab18"
                />

            <Button
                android:id="@+id/finish"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:onClick="onClick"
                android:text="@string/finish"
                android:textColor="#e0ab18"
                android:visibility="gone"/>
        </LinearLayout>

    </LinearLayout>
</ScrollView>

试试这段代码

可以通过执行以下操作应用多个重力属性:

android:layout_gravity="top|center_horizontal"
要在父元素中对齐元素本身,您必须使用
android:layou gravity
来对齐元素的内容,比如文本视图中的文本,您可以使用
android:gravity

当元素之间需要额外的空间时,不必像使用
EditText
那样为元素提供超出所需的高度。只需添加一个
元素,即可在布局中提供轻量级的空白空间

以下是我如何将其应用于您的代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:background="#e0ab18"
                  android:orientation="vertical"
                  android:paddingBottom="@dimen/activity_vertical_margin"
                  android:paddingLeft="@dimen/activity_horizontal_margin"
                  android:paddingRight="@dimen/activity_horizontal_margin"
                  android:paddingTop="@dimen/activity_vertical_margin"
                  tools:context="com.FET.leonardo.scurcola.NameSelection">

        <TextView
            android:id="@+id/whoMaster"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="top|center_horizontal"
            android:gravity="center_horizontal"
            android:layout_marginTop="25dp"
            android:layout_weight="5"
            android:text="@string/whoMaster"
            android:textAlignment="center"
            android:textColor="@color/white"
            android:textSize="50sp"/>

        <EditText
            android:id="@+id/names"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:ems="10"
            android:hint="@string/master"
            android:inputType="textPersonName"
            android:textColor="@color/white"
            android:textColorHighlight="@color/white"
            android:textColorHint="@color/white"/>


        <Space
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="2"/>

        <TextView
            android:id="@+id/playersLeft"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_weight="3"
            android:text="@string/zero"
            android:textColor="@color/white"
            android:textSize="50sp"/>


        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="bottom|center_horizontal"
            android:layout_weight="2"
            android:orientation="horizontal">


            <Button
                android:id="@+id/back"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="end|center"
                android:layout_marginRight="12dp"
                android:enabled="false"
                android:onClick="onClick"
                android:text="@string/back"
                android:textColor="#e0ab18"/>

            <Button
                android:id="@+id/next"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="start|center"
                android:layout_marginLeft="12dp"
                android:onClick="onClick"
                android:text="@string/next"
                android:textColor="#e0ab18"
                />

            <Button
                android:id="@+id/finish"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:onClick="onClick"
                android:text="@string/finish"
                android:textColor="#e0ab18"
                android:visibility="gone"/>
        </LinearLayout>

    </LinearLayout>
</ScrollView>


检查这是否有帮助。


检查这是否有帮助

我对您的
布局做了一些修改。第一个
线性布局的一些修改
重量和重力的变化
。在第二个
线性布局中也是如此

请在XML中应用此修改后的代码

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#e0ab18"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

        <TextView
            android:id="@+id/whoMaster"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Who's The Master"
            android:textAlignment="center"
            android:textColor="#FFFFFF"
            android:textSize="35sp" />

        <EditText
            android:id="@+id/names"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:ems="10"
            android:hint="Master"
            android:inputType="textPersonName"
            android:textColor="#FFFFFF"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:textColorHighlight="#FFFFFF"
            android:textColorHint="#FFFFFF" />

        <TextView
            android:id="@+id/playersLeft"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_marginTop="25dp"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:text="9"
            android:textColor="#FFFFFF"
            android:textSize="35sp" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/back"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="end|center"
                android:layout_weight="0.50"
                android:enabled="false"
                android:onClick="onClick"
                android:text="Back"
                android:textColor="#e0ab18" />

            <Button
                android:id="@+id/next"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="start|center"
                android:layout_weight="0.50"
                android:onClick="onClick"
                android:text="Next"
                android:textColor="#e0ab18" />


        </LinearLayout>


    </LinearLayout>


</ScrollView>

这是屏幕。

我对您的
布局做了一些修改。第一个
线性布局的一些修改
重量和重力的变化
。在第二个
线性布局中也是如此

请在XML中应用此修改后的代码

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#e0ab18"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

        <TextView
            android:id="@+id/whoMaster"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Who's The Master"
            android:textAlignment="center"
            android:textColor="#FFFFFF"
            android:textSize="35sp" />

        <EditText
            android:id="@+id/names"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:ems="10"
            android:hint="Master"
            android:inputType="textPersonName"
            android:textColor="#FFFFFF"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
            android:textColorHighlight="#FFFFFF"
            android:textColorHint="#FFFFFF" />

        <TextView
            android:id="@+id/playersLeft"
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_gravity="center"
            android:layout_marginTop="25dp"
            android:layout_weight="1"
            android:gravity="center_vertical"
            android:text="9"
            android:textColor="#FFFFFF"
            android:textSize="35sp" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_gravity="bottom"
            android:layout_weight="1"
            android:orientation="horizontal">

            <Button
                android:id="@+id/back"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="end|center"
                android:layout_weight="0.50"
                android:enabled="false"
                android:onClick="onClick"
                android:text="Back"
                android:textColor="#e0ab18" />

            <Button
                android:id="@+id/next"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_gravity="start|center"
                android:layout_weight="0.50"
                android:onClick="onClick"
                android:text="Next"
                android:textColor="#e0ab18" />


        </LinearLayout>


    </LinearLayout>


</ScrollView>

这是屏幕。


您是否尝试过使用android:gravity=“”?@Eenvincible任何带有
android:propertyName
的属性描述了视图将如何处理自身内的所述属性。任何名为
android:layout\u propertyName
的属性都意味着它请求该属性的直接父容器。请检查我下面的答案。您是否尝试过使用android:gravity=“”?@Eenvincible任何名为
android:propertyName
的属性都描述了视图将如何在自身内处理所述属性。任何名为android:layout_propertyName
的属性都意味着它请求该属性的直接父容器。请查看下面的答案。OP和其他访问者指出您所做的更改以及更改对输出的影响总是很有帮助的。这绝对是一项伟大的工作!我可以请你看一下我之前开过的这个吗?非常感谢。OP和其他访问者指出您所做的更改及其对输出的影响总是很有帮助的。这绝对是一项伟大的工作!我可以请你看一下我之前开过的这个吗?非常感谢。如果我的答案对你有帮助的话,你至少可以投赞成票来表示感谢。检查你的OP和我的答案我在OP中给出了你想要的。如果我的答案对你有帮助的话,你至少可以通过投票来表示感谢。检查你的OP,检查我的答案,我已经给出了你想要的OP。