3

我在这里阅读了很多帖子,但似乎无法找到如何做到这一点。

我正在尝试创建以下布局 xml。

在中间我想要一个LinearLayout在里面和顶部和开头之间有一些按钮的LinearLayout我​​想要一个textView

LinearLayoutScrollView内,该ScrollView在RelativeLayout内

我通过将LinearLayoutandTextView放入RelativeLayout. 位于LinearLayout父级的中心,位于父级的textView上方linearLayout和顶部。文本垂直居中。

问题是什么时候keyboard打开。我只在LinearLayout里面放了一个ScrollView. 如果我使用adjustPaninmanifest那么什么都不会发生,我不能scroll。如果我使用adjustResize,则Textview出现在顶部LinearLayout而不是上方。那我该怎么办?还是不可能?如果需要,我只希望它linearLayout成为scrollable。这是代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@color/black_overlay"
    android:animateLayoutChanges="true"
    android:hapticFeedbackEnabled="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ScrollView
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:fillViewport="true"
        android:layout_centerInParent="true"
        android:id="@+id/scrollView">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_gravity="center_horizontal"
            android:id="@+id/mLayout">

            <Button
                android:layout_marginBottom="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Match"
                android:id="@+id/btn_newMatch"
                style="@style/ButtonBar"
                android:typeface="monospace"/>

            <Button
                android:layout_marginBottom="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Manage Matches"
                android:id="@+id/btn_manageMatches"
                style="@style/ButtonBar"
                android:typeface="monospace"/>

            <Button
                android:layout_marginBottom="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Manage Teams"
                android:id="@+id/btn_manageTeams"
                style="@style/ButtonBar"
                android:typeface="monospace"/>

            <Button
                android:layout_marginBottom="10dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Settings"
                android:id="@+id/btn_settings"
                style="@style/ButtonBar"
                android:typeface="monospace"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Logout"
                android:id="@+id/btn_logout"
                style="@style/ButtonBar"
                android:typeface="monospace"/>
        </LinearLayout>
    </ScrollView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Name"
        android:typeface="monospace"
        android:layout_above="@id/scrollView"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:textSize="50dp"
        android:textAppearance="?android:textAppearanceMediumInverse"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"/>
</RelativeLayout>

这是当前使用 adjustResize 的样子:

不带键盘:

在此处输入图像描述

带键盘:

在此处输入图像描述

谁能指出我正确的方向?

谢谢!!!:)

4

3 回答 3

0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:animateLayoutChanges="true"
    android:background="@android:color/darker_gray"
    android:hapticFeedbackEnabled="true" >

    <EditText
        android:id="@+id/etName"
        android:layout_width="60dp"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        android:gravity="center" />

    <ScrollView
        android:id="@+id/scrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/etName"
        android:layout_centerInParent="true"
        android:fillViewport="true" >

        <LinearLayout
            android:id="@+id/mLayout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:orientation="vertical" >

            <Button
                android:id="@+id/btn_newMatch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:text="New Match"
                android:typeface="monospace" />

            <Button
                android:id="@+id/btn_manageMatches"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:text="Manage Matches"
                android:typeface="monospace" />

            <Button
                android:id="@+id/btn_manageTeams"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:text="Manage Teams"
                android:typeface="monospace" />

            <Button
                android:id="@+id/btn_settings"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:text="Settings"
                android:typeface="monospace" />

            <Button
                android:id="@+id/btn_logout"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Logout"
                android:typeface="monospace" />
        </LinearLayout>
    </ScrollView>

</RelativeLayout>

在您的清单中的活动标签

 android:windowSoftInputMode="adjustResize|stateHidden"
于 2013-07-31T04:15:41.913 回答
0

只需添加这个

android:windowSoftInputMode="adjustPan|stateHidden"

在清单中的活动声明处。

于 2013-07-29T06:27:08.320 回答
0

为了防止RelativeLayout显示键盘时视图的垂直重叠 - 只需添加边距即可解决问题

android:layout_marginTop="25dp"

于 2017-04-10T19:59:11.270 回答