2015-10-15 27 views
37

Có thể hiển thị Android Snackbar phía trên bàn phím (như trong tọa độ Y, không phân lớp) không? Snackbar hiện bị ẩn nếu bàn phím được hiển thị, đó là hành vi không mong muốn.Hiển thị Android SnackBar phía trên bàn phím?

+1

Bởi vì chúng tôi không thể con số này ra, chúng tôi chỉ ẩn bàn phím bất cứ khi nào chúng tôi hiển thị một snackbar bây giờ (mà chúng tôi sử dụng cho các lỗi) – fobbymaster

+0

Nếu bạn có một bàn phím, bạn sẽ thường nhận được những trải nghiệm tốt nhất sử dụng một Bánh mì nướng cũ đơn giản. Điều này sẽ được hiển thị trên bàn phím và bạn không cần phải ẩn bàn phím (có thể gây nhầm lẫn cho người dùng) – Entreco

Trả lời

48

Set

android:windowSoftInputMode="adjustResize" 

trong AndroidManifest.xml cho hoạt động chứa snackbar bạn

+6

Chắc chắn không hoạt động ... android 4.1.2 –

+0

Làm thế nào để bạn đặt điều đó trong một hoạt động? – Menasheh

+2

Bạn đặt điều này vào tệp kê khai hoạt động của mình –

5

Nếu bạn tổ bố trí của bạn trong một scrollview, các snackbar sẽ xuất hiện trên đầu của bàn phím. Điều này là do chế độ xem sẽ thay đổi kích thước để chỉ chiếm không gian có sẵn phía trên bàn phím. Và, tất nhiên, Chế độ xem của bạn cũng sẽ có thể cuộn nếu cần thiết bất kỳ lúc nào, trong khi bàn phím được hiển thị hay không.

+0

Sử dụng tính năng này với android: fillViewport = "true" để đảm bảo ScrollView lấp đầy toàn bộ màn hình phải là câu trả lời được chấp nhận – FallasB

-3

Cũng giống như @AbAppletic nói, đặt dòng sau trong các ứng dụng của bạn manifest:

android:windowSoftInputMode="adjustResize"

0

Đây là mã của tôi cho snackbar và nó làm việc tương tự + như bạn cần RelativeLayout là phụ huynh chính bố trí id i đã qua.

 snackbar=snackbar.make(relativeLayout,"Image is Saved to "+Savedfile.getPath().toString(),Snackbar.LENGTH_INDEFINITE) 
       .setAction("OK", new OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         snackbar.dismiss(); 
         snackbar=null; 

         System.gc(); 
         finish(); 
        } 
       }); 
     snackbar.show(); 
7

Bạn có thể ẩn bàn phím khi Snackbar được hiển thị.

InputMethodManager imm = (InputMethodManager)activity.getSystemService(Activity.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

+0

trong trường hợp thanh snack của bạn phản hồi việc gõ văn bản. nhấp vào bất cứ điều gì khác và khó chịu để xem (nhấp nháy). tốt hơn là làm tổ với scrollviewer – Ivan

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