2013-04-30 21 views
21

enter image description hereLàm cách nào để ẩn thanh phím mềm trên điện thoại Android?

Khi ứng dụng của tôi bắt đầu, tôi muốn ẩn thanh phím mềm (trong hình chữ nhật màu đỏ) để có màn hình lớn hơn.

  1. Làm cách nào để ẩn?

  2. Tôi có cần hiển thị thanh cố định khi ứng dụng thoát không? Hoặc nó sẽ tự động khôi phục sau khi thoát ứng dụng?

Android 4.1, không có khóa phần cứng trên mặt trước điện thoại.

+0

thể trùng lặp của [Hide Hệ thống Bar trong Tablets] (http://stackoverflow.com/question/12605266/hide-system-bar-in-tablets) – jprofitt

+0

Cũng có thể hữu ích: [Cách dễ dàng để ẩn thanh hệ thống trên Android ICS] (http://stackoverflow.com/questions/10445157/easy-way-to- hide-system-bar-on-android-ics) – jprofitt

Trả lời

19

Hãy thử

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

Từ chính thức doc

Cờ SYSTEM_UI_FLAG_LOW_PROFILE thay thế cờ STATUS_BAR_HIDDEN . Khi được đặt, cờ này cho phép chế độ “cấu hình thấp” cho thanh hệ thống hoặc thanh điều hướng Các nút điều hướng mờ và các thành phần khác trong thanh công cụ cũng ẩn. nút.

cờ SYSTEM_UI_FLAG_VISIBLE thay thế cờ STATUS_BAR_VISIBLE để yêu cầu thanh hệ thống hoặc thanh điều hướng được hiển thị.

các SYSTEM_UI_FLAG_HIDE_NAVIGATION là một lá cờ mới mà yêu cầu thanh điều hướng ẩn hoàn toàn. Hãy nhận biết rằng đây chỉ hoạt động cho thanh điều hướng được một số han sử dụng dsets (nó không giấu thanh hệ thống trên máy tính bảng). Thanh điều hướng quay trở lại để xem ngay sau khi hệ thống nhận đầu vào của người dùng. Như vậy, chế độ này hữu ích chủ yếu cho việc phát lại video hoặc các trường hợp khác trong đó toàn màn hình là cần thiết nhưng không cần nhập đầu vào của người dùng.

Hành vi của thanh điều hướng phụ thuộc vào ứng dụng IIRC, vì vậy nó sẽ hiển thị lại sau khi người dùng rời khỏi ứng dụng của bạn.

+1

Cảm ơn! Đoạn mã trên ẩn thanh như mong đợi. Tuy nhiên, khi tôi chạm vào màn hình của ứng dụng đang hoạt động, thanh sẽ xuất hiện trở lại. Làm thế nào tôi có thể làm cho thanh ẩn trong phần còn lại của vòng đời ứng dụng? – ohho

+0

Bất cứ khi nào người dùng tương tác với ứng dụng, thanh điều hướng sẽ quay lại, như bạn đã thấy. Đây là, theo các tài liệu chính thức, hành vi có chủ ý.Tôi nghĩ rằng bạn sẽ phải ẩn thanh mỗi khi bạn mong đợi một sự tương tác, thật không may. https://developer.android.com/reference/android/view/View.html#SYSTEM_UI_FLAG_HIDE_NAVIGATION – MarsAtomic

+2

@MarsAtomic Vì API cấp 19 có SYSTEM_UI_FLAG_IMMERSIVE và SYSTEM_UI_FLAG_IMMERSIVE_STICKY – user457015

27

Tôi biết nó muộn nhưng đó là câu trả lời đúng vì vậy những gì bạn đang cố gắng làm là những gì được gọi là chế độ nhập vai. for (API 19)

check out: https://developer.android.com/training/system-ui/immersive.html

Các mã mà bạn đã yêu cầu là:

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
    if (hasFocus) { 
     getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
         | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
         | View.SYSTEM_UI_FLAG_FULLSCREEN 
         | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
    } 
} 
+0

Cảm ơn, nhưng tôi đang đối mặt vấn đề khi tôi mở bàn phím, bố cục phía dưới đang bị cắt bớt. –

+0

@PraveenPandey bạn nên thêm thẻ giả mạo clippadding. – mhdjazmati

+2

Cuối cùng nó hoạt động. Mã là mọi thứ nhưng điểm nằm trong nó trênWindowFocusChanged. Cảm ơn! – Mete