What I found works well is to reset the focus back to your text input right after the button gets clicked. That way, the keyboard doesn’t have time to hide and appears to stay in place between submits.
Here’s a directive I modified to auto refocus whenever your input blurs:
angular.module('msgr').directive('isFocused', function($timeout) {
return {
scope: { trigger: '@isFocused' },
link: function(scope, element) {
scope.$watch('trigger', function(value) {
if(value === "true") {
$timeout(function() {
element[0].focus();
element.on('blur', function() {
element[0].focus();
});
});
}
});
}
};
});
Now if you pass true to the is-focused attribute, the keyboard should always stay up.
Hope that helps.