Android软键盘推动控制钛

时间:2014-04-23 06:11:18

标签: android titanium textfield titanium-mobile

我似乎无法弄清楚为什么在Android上编辑文本字段时软键盘的外观会导致我的某些控件被推到页面上。有没有办法阻止视图或按钮向上移动?这真是一团糟!

代码:

registration = {};
registration.view = Titanium.UI.createView({
top : 0,
backgroundImage : GetfilePath + 'bg.png',
});

registration.init = function(view, name) {
 var Scrolview = Titanium.UI.createScrollView({
    top : viewTop,
    height : Ti.UI.SIZE,
    layout : 'vertical',
    scrollType : 'vertical',
    showHorizontalScrollIndicator : false
});
registration.view.add(Scrolview);

var profileView = Ti.UI.createView({
    top : 10,
    height : 100,
    width : 100,
    //backgroundColor : 'red',
});

Scrolview.add(profileView);

var profileImage = Ti.UI.createImageView({
    image : GetfilePath + 'ProfilePicIcon.png',
});

profileView.add(profileImage);

var chooseprofileView = Ti.UI.createView({
    top : 8,
    width : deviceName == 'tab' ? '92.5%' : '92.5%',
    height : deviceName == 'tab' ? 75 : 60,

});

Scrolview.add(chooseprofileView);

var chooseprofileImage = Ti.UI.createView({
    backgroundImage : GetfilePath + 'ChooseProfilebutton.png'
});

chooseprofileView.add(chooseprofileImage);

var chooseprofileLabel = Ti.UI.createLabel({
    text : 'Choose Profile Pic ',
    color : '#E6E6E6',
    font : {
        fontSize : deviceName == 'tab' ? 19 : 17,
        //fontWeight : 'bold',
        fontFamily : os({
            iphone : 'Helvetica Neue',
            ipad : 'Helvetica Neue',
            ipod : 'Helvetica Neue',
            android : 'helveticaneue-webfont'
        })
    },
});

chooseprofileImage.add(chooseprofileLabel);

//alert(UserDetailsInfoData[0].UserName);

var namesurnametextfield = Titanium.UI.createTextField({
    borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
    hintText : 'Name & Surname*',
    backgroundColor : '#32302D',
    color : 'white',
    backgroundImage : 'none',
    keyboardToolbarHeight : 30,
    borderRadius : 10,
    borderColor : '#3F4246',
    borderWidth : 2,
    paddingLeft : 10,
    width : '90%',
    height : 55,
    top : '1%',

    //backgroundColor:'green'
});

Scrolview.add(namesurnametextfield);

var emailtextfield = Titanium.UI.createTextField({
    borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
    hintText : 'Email Address*',
    backgroundColor : '#32302D',
    color : 'white',
    backgroundImage : 'none',
    keyboardToolbarHeight : 30,
    borderRadius : 10,
    paddingLeft : 10,
    borderColor : '#3F4246',
    borderWidth : 2,
    width : '90%',
    height : 55,
    top : '1%',
});

Scrolview.add(emailtextfield);

var cellnotextfield = Titanium.UI.createTextField({
    borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
    hintText : 'Cellphone Number',
    backgroundColor : '#32302D',
    color : 'white',
    backgroundImage : 'none',
    keyboardToolbarHeight : 30,
    borderColor : '#3F4246',
    borderWidth : 2,
    borderRadius : 10,
    paddingLeft : 10,
    width : '90%',
    height : 55,
    top : '1%',
    keyboardType : Titanium.UI.KEYBOARD_NUMBER_PAD,
});

Scrolview.add(cellnotextfield);

//alert(UserDetailsInfoData[0].UserName);

var displaynametextfield = Titanium.UI.createTextField({
    borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
    hintText : 'Display Name*',
    backgroundColor : '#32302D',
    color : 'white',
    backgroundImage : 'none',
    keyboardToolbarHeight : 30,
    borderRadius : 10,
    borderColor : '#3F4246',
    borderWidth : 2,
    paddingLeft : 10,
    width : '90%',
    height : 55,
    top : '1%'
});

Scrolview.add(displaynametextfield);

};

我遵循了link,但问题仍然存在。

ANY Solution?

2 个答案:

答案 0 :(得分:2)

试试这个:

在android标签下的tiapp.xml文件中添加以下代码行:

<activity android:windowSoftInputMode="stateVisible|adjustResize" . . . >

一组软输入可见性常量SOFT_INPUT_STATE_ALWAYS_HIDDEN, SOFT_INPUT_STATE_ALWAYS_VISIBLE, SOFT_INPUT_STATE_HIDDEN, SOFT_INPUT_STATE_UNSPECIFIED, or SOFT_INPUT_STATE_VISIBLE

一组软输入调整常量SOFT_INPUT_ADJUST_UNSPECIFIED, SOFT_INPUT_ADJUST_RESIZE, or SOFT_INPUT_ADJUST_PAN.

另外,请检查:

示例Android示例here

答案 1 :(得分:1)

我之前从未尝试过钛,但是在普通的Java android开发中。我们将此代码添加到相关活动代码下的清单中。

<activity
android:name="Your-activity-name"
android:windowSoftInputMode="adjustPan"
...

我读到Titanuim 3.x中有一个自定义AndroidManifest.xml。 希望这对你有用。