Merhaba arkadaşlar, Android de klavye açıldığı zaman ilgili layout umuzu yukarıya nasıl taşıdığımızı göstereceğim daha iyi anlamak için xml çıktılarımızı kopyalayıp uygulamanıza yapıştırabilirsiniz. Neden böyle bir duruma ihtiyaç duyarız önce onu anlatayım, kullanıcının üç tane alanda veri girmesi gerekiyor diyelim, bunlarda kullanıcı adı, şifre ve tc kimlik numarası olsun.
Kullanıcı adına tıkladığı an sadece o alan gözüküp, diğer alanların gözükmemesi gerekir çünkü kullanıcı adını yazmak istediğimizde ilgili alanı doldurmak isteriz başka bir alanın onun üstüne gelmesi yada klavyenin bütün ekranı kaplayıp, kullanıcıya ne yazdığını gösterememesi gibi durumlarla karşılaşıldığında uygulayacağımız yol AndroidManifest.xml dosyamızda ilgili activitye aşağıdaki kod bloğunu eklemektir.
android:windowSoftInputMode="adjustResize"
Aşağıdaki xml çıktısını bu olayın nasıl gerçekleştiğini anlamanız için koydum. Bir android projesi yaratıp ilgili layout a yapıştırıp, uygulamayı çalıştırın ve her bir EditText e tıkladığımız an klavyenin o alanda açıldığını göreceksiniz.
not: adjustResize yapısının düzgün bir şekilde çalışabilmesi için tavsiyem; ScrollView yapısını kullanmanızdır.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:background="@color/accent_material_light" android:layout_height="match_parent" tools:context=".MainActivity"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:id="@+id/center_layout" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginBottom="40dp" android:layout_marginTop="40dp" android:background="@drawable/bordered_layout" android:layout_width="fill_parent" android:layout_height="500dp"> <LinearLayout android:layout_centerInParent="true" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:layout_marginBottom="20dp" android:hint="Kullanıcı Adı Giriniz" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <EditText android:inputType="number" android:layout_marginBottom="20dp" android:hint="Şifre Giriniz" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <EditText android:layout_marginBottom="20dp" android:hint="TC Kimlik Numarası Giriniz" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> </RelativeLayout> </ScrollView> </RelativeLayout>
3
bu uygulama güzel ama sayfada ListView var ise onun ScrollView özelligi bozuluyor onun etkilenmemesi gerekiyor.