Saya memiliki <ScrollView>
tata letak:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_scrollview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/input_one"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:inputType="number" >
<EditText
android:id="@+id/input_two"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:inputType="number" >
<EditText
android:id="@+id/input_three"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:inputType="number" >
<Button
android:id="@+id/ok_btn"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="@string/ok_str" />
</LinearLayout>
</ScrollView>
Seperti yang Anda lihat di atas, tata letak sederhana terdiri dari tiga bidang masukan dan tombol "Ok".
Saya menjalankan aplikasi saya dengan tata letak di atas, ketika saya mengetuk bidang masukan pertama ( @+id/input_one
), keyboard lunak akan muncul dari bawah layar, ia menyembunyikan bidang masukan ke-3 dan tombol "Ok".
Sejak saya menggunakan <ScrollView>
, saya pikir saya dapat menggulir halaman ke atas untuk melihat bidang masukan ke-3 dan tombol "Ok" yang disembunyikan oleh keyboard lunak, tetapi halaman tersebut tidak dapat digulir . Mengapa? Bagaimana cara menghilangkannya? pada dasarnya, saya ingin melihat setiap kolom input dan tombol "Ok" bahkan keyboard lunak pun muncul.
Jawaban:
Aku tetap masalah dengan mendefinisikan atribut berikut di
<activity>
dari AndroidManifest.xmlsumber
Oke, saya telah mencari beberapa jam sekarang untuk menemukan masalahnya, dan saya menemukannya.
Tidak ada perubahan yang menyukai
fillViewport="true"
atauandroid:windowSoftInputMode="adjustResize"
membantu saya.Saya menggunakan Android 4.4 dan ini adalah kesalahan besar :
Entah bagaimana, tema Layar Penuh mencegah ScrollView dari bergulir saat SoftKeyboard terlihat.
Saat ini, saya akhirnya menggunakan ini sebagai gantinya:
Saya tidak tahu cara menghilangkan bilah sistem atas dengan tampilan waktu dan baterai, tetapi setidaknya saya mendapat masalah.
Semoga ini bisa membantu orang lain yang memiliki masalah yang sama.
EDIT: Saya mendapat sedikit solusi untuk kasus saya, jadi saya mempostingnya di sini :
Saya tidak yakin apakah ini akan berhasil untuk Anda, tetapi itu pasti akan membantu Anda dalam memahami, dan menjernihkan beberapa hal.
EDIT2: Berikut adalah topik bagus lainnya yang akan membantu Anda menuju ke arah yang benar atau bahkan memecahkan masalah Anda.
sumber
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Bagi saya satu-satunya hal yang berhasil adalah dimasukkan ke dalam aktivitas di manifes atribut ini:
Untuk tidak menampilkan keyboard saat membuka aktivitas dan tidak tumpang tindih dengan bagian bawah tampilan.
sumber
letakkan ini di dalam Manifes Anda seperti ini dalam Mode Tanpa Layar penuh
dalam manifes Anda
sumber
ScrollView
, tetapiRelativeLayout
yang berisiLinearLayout
yang kemudian berisiScrollView
Di properti
Manifest
define AndawindowSoftInputMode
:sumber
Lihat ini.
sumber
Ini hanya berhasil untuk saya:
sumber
Juga jika Anda ingin melakukan itu secara terprogram cukup tambahkan baris di bawah ini ke onCreate aktivitas.
sumber
Anda dapat mencoba menggunakan kode berikut untuk menyelesaikan masalah Anda:
sumber
Nah, jawaban paling sederhana yang saya coba hanyalah menghapus kode Anda yang membuat aktivitas menjadi layar penuh. Saya memiliki kode seperti ini yang bertanggung jawab untuk membuat aktivitas saya menjadi layar penuh:
if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.KITKAT) {
saya baru saja menghapus kode saya dan berfungsi dengan baik meskipun jika Anda ingin mencapai ini dengan layar penuh Anda, maka Anda harus mencoba beberapa metode lain
sumber