2015-01-18 15 views
8

Tôi có phương thức gửi tin nhắn và để bàn phím hiển thị, tôi phải đặt tiêu điểm trên textarea sau khi kích hoạt phương thức.Cách thích hợp để hiển thị phương thức ion với textarea và bàn phím

HTML

<script id="new-post.html" type="text/ng-template"> 
    <div class="modal"> 
    <form ng-submit="sendPost(post)"> 
     <ion-header-bar class="bar-royal"> 
      <button class="button button-clear button-light" ng-click="closeNewPost()">Cancel</button> 
      <h1 class="title">New Message</h1> 
      <button type="submit" class="button button-clear">Post</button>   
     </ion-header-bar> 
     <ion-content> 

      <div class="list"> 
      <label class="item item-input"> 
       <textarea class="textareas" id="postMessageInput" ng-model="$parent.post.message" placeholder="What do you want to say?" autofocus ></textarea> 
      </label> 
      </div> 
     </ion-content> 
    </form> 
    </div> 

Bộ điều khiển:

$ionicModal.fromTemplateUrl('new-post.html', function(modal) { 
    $scope.postModal = modal; 
}, { 
    scope: $scope, 
    focusFirstInput: true 
}); 
$scope.newPost = function() { 
    $scope.postModal.show().then(document.getElementById('postMessageInput').focus());  
}; 

gì xảy ra là phương thức trượt lên trước, sau đó bàn phím trượt lên. Đôi khi có một nhấp nháy của màn hình trong khi phương thức đầu tiên cho thấy. Toàn bộ trải nghiệm không mượt mà chút nào. Đôi khi textarea thậm chí được đẩy lên dưới tiêu đề phương thức.

Lý tưởng nhất, tôi muốn phương thức trượt lên bằng bàn phím đã được hiển thị trên màn hình, như thể bàn phím được nhúng vào phương thức. Đó là cách các ứng dụng khác (ios) dường như hoạt động. Có phải là có thể, hoặc là có một phương pháp tiêu chuẩn để hiển thị các phương thức với một bàn phím và textarea?

+0

tôi nên thêm rằng một khi bàn phím được hiển thị (chỉ vì tập trung được đặt trên textarea) mà tiêu điểm không còn trên vùng văn bản và bạn cần nhấp vào vùng văn bản trước khi nhập. – lilbiscuit

Trả lời

0

Ionic keyboard plugin có chức năng Keyboard.show();. Vì vậy, tôi giả sử:

$scope.newPost = function() { 
     cordova.plugins.Keyboard.show(); 
     // set a timeout of 100 here (maybe) 
     $scope.postModal.show().then(document.getElementById('postMessageInput').focus()); 
    }; 

chưa được kiểm tra.

Lưu ý: Tùy chọn này chỉ dành cho Android. Nhưng tôi nghĩ rằng nhấp nháy chỉ xuất hiện trên bitch laggy đó, phải không?

Các vấn đề liên quan