当软键盘在安卓手机上弹出时,如何将布局向上移动?

89

我在布局中有一个登录界面,其中包含两个EditTexts和一个登录按钮。问题是,当我开始输入时,软键盘弹出并覆盖了登录按钮。当键盘出现时,如何将布局向上或上移?

我不想使用ScrollView,只想在不滚动的情况下实现它。怎么做?

17个回答

2
如果您正在使用Xamarin,您可以将此代码WindowSoftInputMode = Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize放在MainActivity类的activity属性中。例如,现在的activity属性将如下所示。
    [Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {
        //some code here.
    }

2

根据这个指南,实现这一点的正确方法是在您的清单中声明:

<activity name="EditContactActivity"
        android:windowSoftInputMode="stateVisible|adjustResize">

    </activity>

看起来 stateVisible 会在 activity 启动时打开它,因此实际上不需要将键盘弹起。 - CodyEngel

2

当软键盘弹出时,它会改变主布局的大小,你需要做的是为该主布局添加一个监听器,并在该监听器中添加代码scrollT0(x,y)来向上滚动。


1
你应该使用


android:windowSoftInputMode="adjustPan|stateHidden"

在你的AndroidManifest.xml文件中声明你的活动。当键盘出现在布局中时,这将调整你的布局内容。

0
这对我来说就像魔术一样有效。
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

0
利用相对布局,它会调整视图,以便在输入文本时您可以看到该视图。

-2

这一定会对你有用。

android:windowSoftInputMode="adjustPan"


1
你能加一些解释吗? - chevybow
只需转到AndroidManifest.xml文件,然后将此标签添加到您想要在键盘弹出时向上滚动的活动中。 - sanjay kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接