Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 钛安卓设备-键盘未保持打开状态_Android_Keyboard_Titanium - Fatal编程技术网

Android 钛安卓设备-键盘未保持打开状态

Android 钛安卓设备-键盘未保持打开状态,android,keyboard,titanium,Android,Keyboard,Titanium,我正在开发一个钛安卓应用程序。我有一系列文本字段,当我关注第一个字段时,软键盘会打开然后立即关闭。如果我点击第二个,键盘会打开并保持打开状态,我可以回到第一个,它会保持打开状态,一切正常。 文本字段的创建方式如下: obj.softKeyboardOnFocus = Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS; obj.height = 40; obj.width = 200; obj.left

我正在开发一个钛安卓应用程序。我有一系列文本字段,当我关注第一个字段时,软键盘会打开然后立即关闭。如果我点击第二个,键盘会打开并保持打开状态,我可以回到第一个,它会保持打开状态,一切正常。 文本字段的创建方式如下:

obj.softKeyboardOnFocus = Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS;
        obj.height = 40;
        obj.width = 200;
        obj.left = 4;
        obj.top = 3;
        obj.autocorrect = false;
        obj.autocapitalization = Titanium.UI.TEXT_AUTOCAPITALIZATION_NONE;
        obj.focusable = true;
        //obj.clearButtonMode = Titanium.UI.INPUT_BUTTONMODE_ONFOCUS;
        obj.keyboardType = Titanium.UI.KEYBOARD_URL;
        if (Titanium.Platform.displayCaps.platformWidth > 320) {
            obj.font = {
                fontSize : getAndroidNumbers(16, 22)
            };
            obj.top = getAndroidNumbers(3, 4);
            obj.height = getAndroidNumbers(40, 60);
            obj.width = getAndroidNumbers(200, 200);
        }


    var tf = Titanium.UI.createTextField(obj);
我还向除最后一个编辑字段外的所有字段添加了侦听器,以解决键盘根本无法打开的问题:

prevTf.addEventListener('return',function(){
            Ti.API.debug("return event listener firing for " + tag);
             tf.focus();
         });

prevTf是列表中的前一个文本字段,tf是当前字段,因此当单击一个字段上的return(“Next”)时,下一个字段将被聚焦(并且键盘保持打开)。以前单击“下一步”时,焦点将更改为下一个字段,但键盘将关闭。现在Next正在工作,但第一个字段无法保持键盘打开。有什么想法吗?

我不太清楚你的问题,我的理解是:

  • 您正面临键盘自动对焦窗口的问题
  • 您需要键盘上的“下一步”按钮,该按钮允许用户移动到下一个文本字段
  • 我将在这里为以上两点添加修正,如果我遗漏了您的问题,请发表评论

    1。要删除键盘的自动对焦:我们有两个合适的解决方案

    示例1:添加/删除第一个文本字段的软键盘属性

    var textField1 = Ti.UI.createTextField({
       borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
       color: '#336699',
       top: 10, left: 10,
       width: 250, height: 60
    });
    
    //keyboard auto-focus code added here
    textField1.softKeyboardOnFocus = Ti.UI.Android.SOFT_KEYBOARD_HIDE_ON_FOCUS;
    textField1.addEventListener('click',function(e) {
       textField1.setSoftKeyboardOnFocus(Ti.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS);
       textField1.focus();
    });
    
    示例2:将软键盘属性添加到当前窗口。(这要好得多,但光标在文本字段中可见)

    2。要允许键盘中的下一个按钮:大多数android设备自动处理下一个按钮功能,但如果您仍要指定这些值,则可以使用文本字段的属性

    var textField1 = Ti.UI.createTextField({
       borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
       color: '#336699',
       top: 10, left: 10,
       width: 250, height: 60
    });
    
    //keyboard auto-focus code added here
    textField1.softKeyboardOnFocus = Ti.UI.Android.SOFT_KEYBOARD_HIDE_ON_FOCUS;
    textField1.addEventListener('click',function(e) {
       textField1.setSoftKeyboardOnFocus(Ti.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS);
       textField1.focus();
    });
    
    窗口中有两个文本字段的完整示例,如下所示:

    var win = Ti.UI.createWindow({
       backgroundColor: 'white',
       windowSoftInputMode: Titanium.UI.Android.SOFT_INPUT_STATE_HIDDEN //keyboard auto-focus code
    });
    
    var textField1 = Ti.UI.createTextField({
       borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
       color: '#336699',
       top: 10, left: 10,
       width: 250, height: 60 , 
       returnKeyType: Titanium.UI.RETURNKEY_NEXT //returnKeyType code here
    });
    
    var textField2 = Ti.UI.createTextField({
       borderStyle: Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
       color: '#336699',
       top: 10, left: 10,
       width: 250, height: 60,
       returnKeyType: Titanium.UI.RETURNKEY_DONE //returnKeyType code here
    });
    
    win.add(textField1);
    win.add(textField2);
    win.open(); 
    

    希望能有帮助

    尝试删除
    obj.softKeyboardOnFocus=tianium.UI.Android.SOFT\u-KEYBOARD\u-SHOW\u-ON\u-FOCUS嗯,这似乎确实有帮助。键盘现在保持打开状态。但是,现在如果我按下键盘上的“下一步”按钮,焦点转到下一个字段,键盘关闭。我试着移除事件监听器,但当场被聚焦时,我又回到了根本没有打开的键盘。你用的是钛合金吗?或者你正在控制器代码中创建文本字段?不是Alloy,只是在javascript中创建文本字段。我正在用Android 4.2.2在华为P6上测试你的代码。它按预期工作-当按下键盘上的文本字段获得焦点/下一步按钮时,键盘是可见的,这不是我想要的-问题是键盘没有按预期显示。我试着显示键盘,而不是隐藏它。如果您能提供一个建议,当文本字段有焦点时,它将始终显示键盘,那将是完美的。至于“下一步”按钮,它就在那里,但具体取决于我正在运行的代码(我已经尝试了几种方法来让它工作),它会导致键盘关闭。