android开发分享Android:我如何防止软键盘推动我的观点?

我的应用程序底部有一个垂直滑动抽屉。 当软键盘打开时,它将抽屉向上推,因此它位于键盘上方。 我实际上希望它保持在屏幕的底部,在显示键盘时隐藏起来。

其他人遇到这个问题? 知道如何解决它?

    您可以简单地将活动的windowSoftInputMode标志切换为“adjustPan”。 查看官方文档获取更多信息。

    <activity ... android:windowSoftInputMode="adjustPan"> </activity> 

    没有任何答案为我工作,但这个伎俩:

     android:windowSoftInputMode="adjustNothing" 

    在我的情况下,button被推上去的原因是因为他们上面的视图是一个ScrollView ,并且无论我设置的android:windowSoftInputMode值是什么值,它都会按下键盘上方的button。

    我能够通过在位于button上方的ScrollView上设置android:isScrollContainer="false"来避免我的底部一排button被软键盘推上去。

    您可以尝试dynamic添加此属性,方法是在活动的onCreate方法中放入以下代码:

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

    这为我工作,而不是:

     android:windowSoftInputMode="adjustPan" 

    didnt。

    这些答案对我没有帮助。 所以我试过这个:

     android:windowSoftInputMode="adjustResize" 

    这就像一个魅力,现在我的应用程序的头不会消失。 它更平滑。

    到目前为止的答案并没有帮助我,因为我有一个button和textInput下面的textView下面的键盘隐藏,但已经解决了我的问题:

     android:windowSoftInputMode="adjustResize" 

    为未来的读者。

    我想要对这个问题进行具体的控制,所以这就是我所做的:

    从片段或活动中, 隐藏其他视图 (键盘启动时不需要), 然后恢复它们来解决此问题:

      rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); rootView.getWindowVisibleDisplayFrame(r); int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top); if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard... //ok now we know the keyboard is up... view_one.setVisibility(View.GONE); view_two.setVisibility(View.GONE); }else{ //ok now we know the keyboard is down... view_one.setVisibility(View.VISIBLE); view_two.setVisibility(View.VISIBLE); } } }); 

    对于xamarin用户,将此代码添加到MainActivity类的Activity属性中,

     WindowSoftInputMode =Android.Views.SoftInput.AdjustNothing 

    或者您可以将此代码Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)添加到MainActivity类的OnCreate方法。

    将以下代码添加到Manifest文件的“活动”中。

     android:windowSoftInputMode="adjustResize" 

    只需添加一行…

    manifest file必需活动中添加android:windowSoftInputMode="stateHidden|adjustPan"

    我刚刚解决了:) ?

    这是最适合我的工作

     android:windowSoftInputMode="adjustNothing" 

    尝试一下!

    要在片段中以编程方式执行此操作,可以使用以下代码

     getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

    把它放在onResume()

    活动的主窗口不会调整为软键盘腾出空间。 相反,窗口的内容将被自动移动,这样当前的焦点永远不会被键盘遮挡,用户总是可以看到他们正在input的内容。

     android:windowSoftInputMode="adjustPan" 

    这可能是一个更好的解决scheme,你想要什么。

     android:windowSoftInputMode="stateHidden|adjustNothing" 

    此代码工作。

    尝试使用这个:

     android:windowSoftInputMode="stateHidden|adjustPan" 

    滚动查看:

    如果在您的Android Manifest中添加了android:windowSoftInputMode="stateHidden|adjustPan"后仍然不起作用。

    它可能会受到影响,因为当键盘出现时,它将进入滚动视图,如果您的button/任何对象不在您的滚动视图中,那么对象将沿着键盘移动其位置。

    检查你的xml在哪里你的button,并确保它在你的滚动查看括号,而不是它。

    希望这有助于。 :d

    此代码可能会帮助你。 在你的oncreate方法中使用它。

     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

    包含在您的清单文件下你想要显示的活动。但请确保不要使用全屏活动

    机器人:windowSoftInputMode = “adjustPan”

    那么我已经看到了这些答案,但在我的情况下,我陷入了同样的问题,并通过一个非常方便和最简单的解决scheme避难,涉及到放置在您的XML文件中的Scrollview标记非常小的天真的属性。 那是

     android:isScrollContainer="false" 

    祝你好运!

    在我的情况下,我需要键盘保持隐藏,只需按一下button,我的布局需要调整,所以我只是在清单中添加了这个命令,它超级正确。

     android:windowSoftInputMode="stateHidden|adjustResize" 

      以上就是android开发分享Android:我如何防止软键盘推动我的观点?相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/523480.html

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐