相关疑难解决方法(0)

获得软键盘的尺寸

有没有办法知道屏幕上显示的键盘大小?

我正在使用Cocos2dx进行编程,但我想知道Android部分或Cocos部分屏幕中显示的键盘高度,这没关系.

我知道Keyboard有一个getHeight()方法,但我不想创建新的键盘,我想使用默认键盘.

keyboard android cocos2d-x

25
推荐指数
4
解决办法
5万
查看次数

获取Android中虚拟键盘的高度

如何在Android中获得虚拟键盘的高度?可能吗?

我尝试从主窗口获取它,但它给了我完整的应用程序高度.但我想获得键盘高度.

android android-softkeyboard

15
推荐指数
1
解决办法
3万
查看次数

如何处理android API低于28的缺口(显示切口)?

Android在API 28上增加了缺口支持,但如何在运行API 27的设备上处理它(荣誉10,华为P20等)?

我试图使用,DisplayCutoutCompat但我无法创建它的实例,因为文档没有真正指出如何创建一个.

如何创建构造函数参数值:Rect safeInsets,List<Rect> boundingRects

我也查看了构造函数的源代码,这对我来说有点混乱:

public DisplayCutoutCompat(Rect safeInsets, List<Rect> boundingRects) {
        this(SDK_INT >= 28 ? new DisplayCutout(safeInsets, boundingRects) : null);
    }
Run Code Online (Sandbox Code Playgroud)

这将始终在运行API <28的设备上返回null .先感谢您.

android android-appcompat android-9.0-pie androidx

12
推荐指数
2
解决办法
6445
查看次数

通过编程方式在后台使用带有GL视图的软键盘创建EditText

我正在开发一款游戏,当它弹出时我希望在软键盘上方有一个EditText位置.

以下是我在主要活动中构建视图层次结构时的代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

viewGroup = new RelativeLayout(this);
    viewGroup.setLayoutParams(new ViewGroup.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    view = new GameView(this);
        RelativeLayout.LayoutParams vLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        vLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        view.setLayoutParams(vLayoutParams);
        viewGroup.addView(view);

    editText = new GameEditText(this);
        RelativeLayout.LayoutParams etLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        etLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        editText.setGravity(Gravity.BOTTOM);
        editText.setLayoutParams(etLayoutParams);
    viewGroup.addView(editText);

setContentView(viewGroup);  
Run Code Online (Sandbox Code Playgroud)

这是我的AndroidManifest.xml(重要的部分):

<activity 
    android:name="app.ember.MainActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:launchMode="singleTask"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="sensorLandscape"
    android:windowSoftInputMode="adjustResize"
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

额外的信息:

  • GameView =是一个GLSurfaceView
  • GameEditText =是一个EditText
  • 如果我注释掉第一行(getWindow().addFlags ...)那么游戏视图向上平移并且视图不可见,除非我开始输入内容.
  • 离开第一行会使游戏不平移,但不会向上移动editText字段,键盘会覆盖editText字段

有什么建议?

这是一些花哨的截图:

游戏没有键盘:

没有键盘的游戏

键盘和WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS设置游戏(显示器中显示图层层次结构的样子):

键盘与显示器

游戏键盘和那些标志没有设置. 在此输入图像描述

这是所需的输出: 期望的输出

android relativelayout glsurfaceview android-layout android-edittext

8
推荐指数
1
解决办法
659
查看次数

获取Android软键盘高度_without_"adjustResize"

我在两个片段之间有一个动画.第二个片段将调出一个键盘.由于键盘将覆盖屏幕的某些部分,我手动需要在那里调整间隔视图以调整我的视图.使用android:windowSoftInputMode="adjustResize"将导致我的过渡动画变得超级滞后.使用adjustNothing在另一方面会使其光滑.

那么有没有办法获得键盘高度而不使用adjustResize

编辑: 我的问题是不同的fe 是否有任何方式在Android中获取设备的虚拟键盘的高度,因为我无法添加adjustResize

android android-manifest android-layout android-activity

8
推荐指数
0
解决办法
2012
查看次数

如何处理覆盖固定元素的Android键盘?

我的网站上有私人消息功能。消息窗口是一个固定元素:

position: fixed;
bottom: 0;
Run Code Online (Sandbox Code Playgroud)

在 iOS 上,当打开位于消息窗口最底部的输入时,键盘只是将整个网站推到顶部,这样您仍然可以看到您正在输入的内容。

IOS

但是,在 Android 上,键盘只是重叠所有内容,因此您不再看到输入元素:

安卓

我该怎么做才能让它在 iOS 和 Android 上都能运行?

javascript css android google-chrome ios

5
推荐指数
1
解决办法
466
查看次数