2013-01-13 25 views
6

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:

    enter image description here enter image description here

    Şimdi, ne zaman Klavye açık, düğmelerini görmek için aşağı kaydırmak istiyorum (sarı ve altta). Bunu yapamam.

    enter image description here

    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

    Notice the scrollbar on the right, and the button isnt seen, as it is "far down"

    *

    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> 
    

cevap

1

deneyin adjustResize için resizeMode değişen ve dışarıya senin RelativeLayoutlinearLayout6 içinden ScrollView hareketli ve wrap_content için RelativeLayout arasında layout_height ayarı.

+0

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

+0

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

İlgili konular