54

我有一个带有一些视图的布局,其中一个是 EditText。布局很容易适合一页,但是,当软键盘退出时,布局不会滚动。这是我的布局的回顾:

<?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="match_parent"
    android:background="@drawable/background" >

    <ScrollView
        android:id="@+id/ScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" >

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

            <CheckBox/>

            <TextView/>

            <LinearLayout>
                <EditText>
                    <requestFocus />
                </EditText>
            </LinearLayout>

            <TextView/>

            <LinearLayout>
                <Spinner/>
            </LinearLayout>

        </LinearLayout>

    </ScrollView>

    <Button
        android:layout_alignParentBottom="true" />

</RelativeLayout>

在我的清单中,我声明了该属性:

android:windowSoftInputMode="adjustResize|stateHidden"

有谁知道它为什么不起作用以及如何确保它起作用?

提前致谢!

4

11 回答 11

65

我遇到了同样的问题,我在清单中检查了我的活动,它不起作用的原因是因为我没有使用这个属性:

android:windowSoftInputMode="adjustResize"

现在它工作得很好,不需要做额外的锚。

于 2013-08-12T10:14:46.047 回答
38

好的,显然 ScrollViewandroid:layout_height不能设置为wrap_content. 我将其设置为match_parent并将其设置android:layout_above为页面底部的按钮。

不要问我为什么,但这解决了问题。

于 2013-03-15T19:38:42.170 回答
26

就我而言,上述方法均无效。

我有item name="android:windowTranslucentStatus">true</item>我的主题。它是通过android:fitsSystemWindows="true"在父布局中设置我的滚动视图来修复的。

于 2017-09-12T08:49:50.737 回答
13

添加android:windowSoftInputMode="stateHidden|adjustResize"到 AndroidManifest.xml 文件中的标签。这将导致屏幕在显示软键盘后调整到左侧空间。因此,您将能够轻松滚动。

于 2014-11-17T10:55:19.623 回答
5

在我的情况下,上述任何解决方案在我删除之前都不起作用

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

在我的活动中,我使用该代码来获得全屏显示。也许在某些情况下,尝试删除全屏的任何设置以使上述任何解决方案都能正常工作。

于 2019-08-16T02:34:54.487 回答
4

如果您的第一个片段滚动完美而第二个片段没有滚动,那么您应该使用第二个片段替换并执行以下操作

1.在滚动视图中添加

android:fillViewport="true"
android:fitsSystemWindows="true"

2.添加清单

android:windowSoftInputMode="adjustResize|stateVisible"

如果您添加片段,那么我的建议是您需要替换片段

于 2020-07-08T05:28:44.077 回答
3

在我的情况下,我必须从我的样式中删除以下属性才能使其正常工作。

<item name="android:windowFullscreen">true</item>
于 2020-01-27T05:20:32.583 回答
1

我的问题是水平滚动视图。就我而言,我必须将 Horizo​​ntalScrollView 设置为:

android:layout_width="match_parent"
android:layout_height="match_parent"

并删除:

 android:layout_above="@+id/closeButton"
 android:layout_below="@+id/logo"

在 AndroidManifest.xml 中,活动设置为:

android:windowSoftInputMode=""

我希望这可以帮助任何遇到这个奇怪错误的人。

于 2015-02-05T10:18:58.310 回答
0

就我而言,解决这个问题的方法是在底部设置一个缺失的约束。我的 ScrollView 有顶部、右侧和左侧约束,但没有底部约束。从四面八方限制之后,它开始与上面的textview重叠,这促使我尝试将高度设置为0dp,这似乎解决了问题。

于 2020-07-18T11:02:09.783 回答
-1

尝试将 ScrollView 设置为您的父布局。它对我来说就像魅力!

于 2017-07-10T04:30:40.367 回答
-6
<activity 
    android:windowSoftInputMode="adjustResize"
>

试试这个在android清单中..

于 2018-04-22T16:47:05.313 回答