Câu trả lời:
Bạn đang hỏi làm thế nào để kiểm soát những gì có thể nhìn thấy khi bàn phím mềm mở ra? Bạn có thể muốn chơi với windowSoftInputMode . Xem tài liệu dành cho nhà phát triển để thảo luận thêm.
android:fitsSystemWindows="true"
chế độ xem gốc của bạn để giải quyết điều này.
Tôi đã có vấn đề tương tự. Hãy thử mã sau:
android:windowSoftInputMode="adjustPan"
thêm nó vào tệp kê khai của bạn trong thẻ hoạt động của hoạt động chứa đầu vào. thí dụ:
<activity
android:name=".Activities.InputsActivity"
...
android:windowSoftInputMode="adjustPan"
/>
adjustResize
thường làm, nhưng nó cũng bao gồm các trường đầu vào của tôi
Tôi gặp vấn đề tương tự khi bảng phím mềm nằm trên cùng của chế độ xem Chỉnh sửa được đặt ở dưới cùng của màn hình. Tôi đã có thể tìm ra giải pháp bằng cách thêm một dòng vào hoạt động có liên quan của tệp AndroidManifest.xml của mình.
android:windowSoftInputMode="adjustResize|stateHidden"
Đây là cách toàn bộ thẻ hoạt động trông như thế nào:
<activity
android:name="com.my.MainActivity"
android:screenOrientation="portrait"
android:label="@string/title_activity_main"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>
Ở đây giá trị quan trọng nhất là điều chỉnhResize. Điều này sẽ chuyển toàn bộ UI lên để nhường chỗ cho bảng phím mềm.
adjustResize|stateHidden
và nó không tạo ra sự khác biệt nào adjustPan
.
Tại sao không thử thêm ScrollView để bọc bất cứ thứ gì bạn muốn cuộn. Đây là cách tôi đã thực hiện, trong đó tôi thực sự để một tiêu đề trên đầu mà không cuộn, trong khi các tiện ích hộp thoại (đặc biệt là EditTexts) cuộn khi bạn mở bàn phím mềm.
<LinearLayout android:id="@+id/HeaderLayout" >
<!-- Here add a header or whatever will not be scrolled. -->
</LinearLayout>
<ScrollView android:id="@+id/MainForm" >
<!-- Here add your edittexts or whatever will scroll. -->
</ScrollView>
Tôi thường sẽ có một linearLayout bên trong ScrollView, nhưng điều đó tùy thuộc vào bạn. Ngoài ra, cài đặt kiểu Thanh cuộn thành bên ngoài giúp, ít nhất là trên các thiết bị của tôi.
Tất cả bạn cần làm là
android:isScrollContainer="true"
nguồn: http://www.davidwparker.com/2011/08/25/android-fixing-window-resize-and-scrolling/
Xin lỗi vì đã phục hồi một chủ đề cũ nhưng không ai đề cập đến cài đặt android:imeOptions="flagNoFullscreen"
trong phần tử EditText của bạn
android:windowSoftInputMode="adjustPan"
android:isScrollContainer="true"
hoạt động cho android EditText, trong khi nó không hoạt động cho webview hoặc xwalkview. Khi bàn phím mềm ẩn đầu vào trong webview hoặc xwalkview bạn đã sử dụngandroid:windowSoftInputMode="adjustResize"
Tôi tin rằng bạn có thể làm cho nó cuộn bằng cách sử dụng trackball, có thể đạt được bằng lập trình thông qua các phương pháp lựa chọn, nhưng đó chỉ là một ý tưởng. Tôi biết rằng phương pháp trackball thường hoạt động, nhưng về cách chính xác để làm điều này và làm cho nó hoạt động từ mã, tôi không chắc chắn.
Mong rằng sẽ giúp.
thêm dòng đơn này vào hoạt động tương đối của bạn trong đó bìa bàn phím chỉnh sửa phương thức hoạt động của text.inside onCreat ().
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Tôi biết điều này là cũ nhưng không có giải pháp nào ở trên làm việc cho tôi. Sau khi gỡ lỗi rộng rãi, tôi đã tìm ra vấn đề. Giải pháp là đặt android:windowTranslucentStatus
thuộc tính thành false trong tệp style.xml của tôi
Nếu Trường Chỉnh sửa được bao phủ bởi KeyBoard Sử dụng mã sau:
EditText= findViewById(R.id.edittext)
EditText?.getParent()?.requestChildFocus(EditText,EditText)
Nếu bạn muốn Con trỏ ở trong Chỉnh sửa tập trung hơn là sử dụng EditText.requestFocus()
sau khi EditText?.getParent()?.requestChildFocus(EditText,EditText)
giúp lấy tiêu điểm và Con trỏ trong Chỉnh sửa tập trung.
Chỉnh sửa AndroidManifest.xml của bạn
android:windowSoftInputMode="adjustResize"
Thêm phần này vào chế độ xem gốc của tệp Bố cục.
android:fitsSystemWindows="true"
Đó là tất cả.