Quantcast
Channel: Appcelerator Developer Center Q&A Tag Feed (keyboard)
Viewing all articles
Browse latest Browse all 352

Soft keyboard move up entire window

$
0
0

Hi guys, I'm working on comment system like the one in Facebook app, I've got a tableView, a scrollView and an input TextField. Every time I click on my textField and keyboard appears, my entire window lifts up :( Here my code and two images.

Image 1 Image 2

Hope someone will help!

function ChatWindow(id_poi,title) {
    var _this = this;
    this.title = title;
    this.id_poi = id_poi;
 
    this.window = Ti.UI.createWindow({
        title: "Commenti",
        fullscreen:false
    });
 
    this.window.windowSoftInputMode = Ti.UI.Android.SOFT_INPUT_ADJUST_PAN;
 
    this.window.addEventListener('android:back', function() {
            this.close();
    });
 
    this.window.activity.onCreateOptionsMenu = function(e) {
        var actionBar = this.window.activity.actionBar; 
        actionBar.displayHomeAsUp = true;
        actionBar.onHomeIconItemSelected = function () { 
            this.window.close();
        }; 
    };
 
    this.downloadData(this.window,id_poi);
 
    return this.window;
}
 
ChatWindow.prototype.downloadData = function(window,id_poi) {
    this.window = window;
    this.id_poi = id_poi;
 
    var commentReq = Titanium.Network.createHTTPClient();
    commentReq.open("POST","http://www.giacomomarangoni.com/log/comments.php");
    var params = {
        id_poi: id_poi
    };
    commentReq.send(params);
 
    var response;
 
    commentReq.onload = function(){
        var json = this.responseText;
        response = JSON.parse(json);
        configureWindow(window,response);
    };
 
};
 
function configureWindow(window,response) {
 
    this.window = window;
    this.response = response;
 
    var larghezza_schermo = Ti.Platform.displayCaps.xdpi;   
 
    var data=[];
 
    //la tabella probabilmente deve essere messa in una scrollview perchè altrimenti se compare la tastiera non si vede la parte superiore
    var TheTable = Titanium.UI.createTableView({
        rowHeight: 'auto',
        height:'auto',
        top:0
    });
 
    for (var i = 0; i < response.length; i++) {
        var row = Titanium.UI.createTableViewRow({
            height: 'auto', 
        });
 
        //eventuale foto profilo
        /*var profile =  Titanium.UI.createImageView({
            url:response[i].profile_pic,
            width:32,
            height:32,
            left:4,
            top:8
        });*/
 
        var name = Titanium.UI.createLabel({
            text:response[i].nome_completo,
            font:{fontSize:16,fontWeight:'bold'},
            width:'auto',
            textAlign:'left',
            top:8,
            left:10,
            height:'auto',
        });
 
        var comment =  Titanium.UI.createLabel({
            text:response[i].commento,
            font:{fontSize:14,fontWeight:'bold'},
            width:'auto',
            textAlign:'left',
            bottom:10,
            top:28,
            left:10,
            right:10,
            height:'auto',
        });
 
        //row.add(profile); serve per aggiungere la foto profilo
        row.add(name);
        row.add(comment);
        row.className = 'comment_row';
 
        data.push(row);
    }
 
    var scrollView = Titanium.UI.createScrollView({
        contentWidth:'auto',
        contentHeight:'auto',
        top:0,
        showVerticalScrollIndicator:true,
        showHorizontalScrollIndicator:false
    });
    window.add(scrollView); 
 
    TheTable.setData(data);
    scrollView.add(TheTable);  
 
        var textField = Titanium.UI.createTextField({
        color:'#336699',
        height:40,
        left:0,
        width:larghezza_schermo-25,
        bottom:0,
        hintText:'Inserisci un commento',
        keyboardType:Titanium.UI.KEYBOARD_DEFAULT,
        returnKeyType:Titanium.UI.RETURNKEY_DEFAULT,
        borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
    });
 
    scrollView.add(textField);
 
    var sendButton = Titanium.UI.createButton({
        title:'Invia',
        width:60,
        height:40,
        borderRadius:1,
        bottom:0,
        right:0,
        font:{fontFamily:'Arial',fontWeight:'bold',fontSize:16}
    });
    scrollView.add(sendButton);  
};
 
module.exports = ChatWindow;

Viewing all articles
Browse latest Browse all 352

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>