【问题标题】:PhoneGap android : keyboard overlaps input fieldPhoneGap android:键盘与输入字段重叠
【发布时间】:2019-03-07 21:52:21
【问题描述】:

点击输入键盘时,我在 web 视图中有一个输入字段 显示,但它出现在输入字段上。 我尝试将windowSoftInputMode="adjustPan" 放入 androidManifest 但 还是一样。 在设备的浏览器中打开相同的 html 页面时,一切正常。 有任何想法吗 ?

问候

更新:

它没有 XML 布局,因为我使用 Phonegap 框架并且 Activity 扩展了 DroidGap,并且它没有 setContentView(xx.xml) 方法。

public class TestActivity  extends DroidGap {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        setIntegerProperty("loadUrlTimeoutValue", 30000);
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

【问题讨论】:

  • 在这里尝试建议:stackoverflow.com/questions/6205697/… 如果它不起作用,请发布您的 XML 布局源。
  • @Jan Gerlinger 它没有 xml 布局。因为我使用 Phonegap 框架并且 Activity 扩展了 DroidGap。并且没有 setContentView(xx.xml) 方法。 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); setIntegerProperty("loadUrlTimeoutValue", 30000); super.loadUrl("file:///android_asset/www/index.html");

标签: android cordova


【解决方案1】:

我似乎有完全相同的问题并添加了

android:windowSoftInputMode="adjustPan"

像你做的那样到 AndroidManifest.xml 文件。这不起作用,最后有人指出使用

android:windowSoftInputMode="adjustResize"

相反。这现在对我有用。 adjustPan 似乎更有意义,而 adjustResize 听起来是错误的,但它确实可以完成工作。

【讨论】:

    【解决方案2】:

    尝试将首选项全屏更改为 false

    <preference name="fullscreen" value="false" />
    

    我试过了,成功了!

    【讨论】:

      【解决方案3】:

      在 phonegap 中有特定设备的首选项。请参阅此页面上的配置:https://build.phonegap.com/docs/config-xml 更改 config.xml 的解决方案是:

      preference name="android-windowSoftInputMode" value="stateVisible|adjustResize"
      

      【讨论】:

        【解决方案4】:

        结合上面的答案对我有用:

        <preference name="android-windowSoftInputMode" value="stateVisible|adjustResize"/>
        

        和:

        <preference name="fullscreen" value="false"/>
        

        【讨论】:

          【解决方案5】:

          您好,您可以使用 js 和 css 代码来实现。这对我有用。

          JS:

          $("form input,textarea,select").focusin(function (){
          
              $(".scrollablefield").animate({
                  scrollTop: $(this).offset().top
              }, 600);
            });
          

          css:

          form{
              padding-bottom: 300px;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-08-31
            • 1970-01-01
            • 1970-01-01
            • 2014-05-07
            • 1970-01-01
            • 2012-11-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多