Bu sayfada, yumuşak giriş klavyesini ve bildirimde bulunması gerekenleri (AdjustPan veya adjustResize) göstererek EditText ile ilgili sorun hakkında SO'da çok fazla soru olduğunu biliyorum.Yumuşak klavye, ScrollView öğesinde kaydırma tetiklemiyor
Burada birçok soru ve yanıt okudum, ancak sorunumu çözemedim.
Aslında oldukça basit: Giriş etkinliğim var ve klavye görüntülenmiyorken tüm içerik bir ekrana sığar. Bu Giriş Etkinliğinin alt kısmında, her zaman en altta olması gereken bir düğmem var. Bir EditText'e odaklanıldığında, klavye bazı şeyleri gösterir ve gizler. Klavye dolduğunda, aşağı kaydırmak istiyorum ama yapamam. Ben burada tezahür
aktiviteyi için "adjustPan" belirledik
- olmadan ve klavye ile iki görüntülerdir:
Şimdi, ne zaman Klavye açık, düğmelerini görmek için aşağı kaydırmak istiyorum (sarı ve altta). Bunu yapamam.
alt kısmındaki düğme yok "üstünde" dir: yerine ayarlarsanız burada görülebileceği gibi
manifest'te, "adjustRezise", başka bir istenmeyen etkiyi elde etmek Diğer şeyler, ama ben kaydırma yapamıyorum (böylece "logga in" düğmesi görülebilir).
İlk soru: "scrollPan" ile kaydırma işlevi neden çalışmıyor ve klavye şeyler saklıyor? Söylediğim makul şey bu. ,
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/linearLayout6" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/taxibg3" android:orientation="vertical" > <ScrollView android:id="@+id/ScrollView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@id/login_logoBarInclude" android:fillViewport="true" android:orientation="vertical" > <RelativeLayout android:id="@+id/login_form" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/iv1" android:layout_width="240dp" android:layout_height="280dp" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" android:background="@drawable/login_square_adapted" android:orientation="vertical" android:paddingTop="15dp" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="@string/vehicleLogin" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#ffffff" /> <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:layout_marginRight="3dp" android:layout_marginTop="10dp" > <include layout="@layout/menu_divider_horizontal" > </include> </FrameLayout> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="35dp" android:gravity="center_horizontal" android:orientation="vertical" > <EditText android:id="@+id/login_carNumber" style="@style/EditTextDark" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/login_car_icon" android:hint="@string/prompt_carNumber" android:inputType="phone" android:textAppearance="?android:attr/textAppearanceMedium" android:textCursorDrawable="@null" > <requestFocus /> </EditText> <ImageView android:id="@+id/login_car_icon" android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/user" /> <EditText android:id="@+id/login_password" style="@style/EditTextDark" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/login_carNumber" android:layout_marginTop="10dp" android:layout_toRightOf="@+id/login_lock_icon" android:hint="@string/prompt_password" android:inputType="phone" android:textAppearance="?android:attr/textAppearanceMedium" android:textCursorDrawable="@null" > </EditText> <ImageView android:id="@+id/login_lock_icon" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignTop="@id/login_password" android:layout_below="@id/login_car_icon" android:src="@drawable/lock" /> <Button android:id="@+id/sign_in_button" android:layout_width="fill_parent" android:layout_height="40dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="10dp" android:background="@drawable/button_rounded" android:gravity="center_horizontal" android:paddingTop="5dp" android:text="@string/action_sign_in_short" android:textColor="#000000" /> </RelativeLayout> </LinearLayout> </RelativeLayout> </ScrollView> <Button android:id="@+id/quit_app_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="@string/action_exit_app" /> </RelativeLayout>
======= DÜZENLEME =========
Yani, Josephs öneriye göre düzen değişti:
İşte benim XML ama şimdi "yükseklik çok büyük", bunun için bir neden olmasa da, yani sondaki düğme "çok aşağı", bu yüzden aşağıda olmak yerine, onu görmek için "aşağıya doğru" ilerlemeniz gerekiyor Ekranın
*
sağdaki kaydırma çubuğunu dikkat edin ve onu "çok aşağı" olduğu gibi düğme isnt görülme: Ben ne demek istediğimi anlamak umuyoruz. Ayrıca, arka plan gerilir, bu nedenle "linearLayoyt6" (kafa karıştırıcı, evet) olarak adlandırılan RelativeLayout'un bir nedenden dolayı genişlediği anlamına gelir ... *Yüksekliği sabit bir dp'ye ayarlamayı denedim. ScrollView ve aşağıdaki düzenler ancak hiçbir şey yardımcı olmadı.Ve XML şu şekildedir:
<?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ScrollView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RelativeLayout android:id="@+id/linearLayout6" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/taxibg3" android:orientation="vertical" > <RelativeLayout android:id="@+id/login_form" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/iv1" android:layout_width="240dp" android:layout_height="280dp" android:layout_centerHorizontal="true" android:layout_marginTop="25dp" android:background="@drawable/login_square_adapted" android:orientation="vertical" android:paddingBottom="0dp" android:paddingLeft="0dp" android:paddingRight="0dp" android:paddingTop="15dp" > <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="@string/vehicleLogin" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#ffffff" /> <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="3dp" android:layout_marginRight="3dp" android:layout_marginTop="10dp" > <include layout="@layout/menu_divider_horizontal" > </include> </FrameLayout> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:layout_marginTop="35dp" android:gravity="center_horizontal" android:orientation="vertical" > <EditText android:id="@+id/login_carNumber" style="@style/EditTextDark" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/login_car_icon" android:hint="@string/prompt_carNumber" android:inputType="phone" android:textAppearance="?android:attr/textAppearanceMedium" android:textCursorDrawable="@null" > <requestFocus /> </EditText> <ImageView android:id="@+id/login_car_icon" android:layout_width="40dp" android:layout_height="40dp" android:src="@drawable/user" /> <EditText android:id="@+id/login_password" style="@style/EditTextDark" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/login_carNumber" android:layout_marginTop="10dp" android:layout_toRightOf="@+id/login_lock_icon" android:hint="@string/prompt_password" android:inputType="phone" android:textAppearance="?android:attr/textAppearanceMedium" android:textCursorDrawable="@null" > </EditText> <ImageView android:id="@+id/login_lock_icon" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignTop="@id/login_password" android:layout_below="@id/login_car_icon" android:src="@drawable/lock" /> </RelativeLayout> <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginTop="30dp" android:background="@drawable/login_square_half" android:padding="0dp" > <Button android:id="@+id/sign_in_button" android:layout_width="120dp" android:layout_height="40dp" android:layout_gravity="center_vertical|center_horizontal" android:background="@drawable/button_rounded" android:gravity="center_horizontal" android:text="@string/action_sign_in_short" android:textColor="#000000" /> </FrameLayout> </LinearLayout> </RelativeLayout> <Button android:id="@+id/quit_app_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="@string/action_exit_app" /> </RelativeLayout> </ScrollView>
Teşekkürler, ama işe yaramadı. Tüm "ekran" artık aşağı doğru genişledi, gerçek ekrandan daha büyüktü, işler "örtüşüyor" ve her türlü tuhaf şeyler. Runtime-errors da ne yazık ki :-( – Ted
Aslında işe yarayabilir, ama problem yukarıda belirtildiği gibi - alan "aşağı doğru" şimdi çok büyük, yani, hatta baştan beri, düğmenin olduğu yerde aşağı doğru kaydırma yapabilirim. Ama neden bu kadar çok yer olduğunu anlayamıyorum ... Yukarıdaki EDIT'ime bakın. – Ted