2013-01-13 9 views
6

nicht aus Ich weiß, es gibt viele viele Fragen hier zu SO bezüglich des Problems mit EditText, zeigt die Soft-Eingabe-Tastatur und was Sie im Manifest haben sollten (adjustPan oder adjustResize).Soft-Tastatur löst Scrollen in einem ScrollView

Ich habe viele der Fragen und Antworten hier gelesen, aber konnte mein Problem nicht lösen.

Seine eigentlich ganz einfach: Ich habe eine Anmeldung Aktivität und alle Inhalte passt auf einen Bildschirm, wenn die Tastatur nicht angezeigt wird. Am Ende dieser Login-Aktivität habe ich eine Schaltfläche, die immer unten sein sollte. Wenn Sie sich auf einen EditText konzentrieren, wird auf der Tastatur etwas angezeigt und ausgeblendet. Wenn die Tastatur hoch ist, würde ich gerne runterscrollen können, aber ich kann nicht.

  • ich die Tätigkeit eingestellt haben, dass "adjustPan" im Manifest

Hier sind zwei Bilder, ohne und mit der Tastatur:

enter image description here enter image description here

Wenn nun der Die Tastatur ist oben, ich möchte nach unten scrollen, um die Tasten zu sehen (die gelbe und die untere). Ich kann es nicht tun.

Wenn ich stattdessen gesetzt, in dem Manifest, auf „adjustRezise“, bekomme ich einen anderen unerwünschten Effekt, wie hier zu sehen:

enter image description here

Der Knopf an der Unterseite ist kein „oben auf“ die anderen dinge, aber ich kann nicht blättern (so dass der "logga in" button angezeigt werden kann).

Die erste Frage ist: Warum funktioniert das Scrollen nicht mit "adjustPan" und wenn die Tastatur etwas versteckt? Das ist vernünftig, würde ich sagen.

Hier ist meine XML:

<?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> 

======= ========= EDIT

So änderte ich das Layout nach Josephs Vorschlag, aber jetzt ist die "Höhe sehr groß", obwohl es keinen Grund dafür gibt, dh der Knopf am Ende ist "weit unten", also musst du "weit unten" scrollen, um es zu sehen, anstatt unten zu sein des Bildschirms. Ich hoffe, Sie verstehen, was ich meine:

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

* Beachten Sie die Bildlaufleiste rechts, und die Taste ist nicht zu sehen, da es „weit unten“ ist. Auch der Hintergrund ist gestreckt, so dass der RelativeLayout namens "linearLayoyt6" (verwirrend, ja) aus irgendeinem Grund nach unten expandiert ... *

Ich habe versucht, die Höhe auf einen festen dp, für die ScrollView, und die Layouts unten, aber nichts hat geholfen.Und die XML ist wie folgt:

<?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> 

Antwort

1

Versuchen Sie, die resizeMode zu adjustResize verändern und Bewegen des ScrollView aus Ihrem RelativeLayoutlinearLayout6 nach außen und die layout_height der RelativeLayout-wrap_content Einstellung.

+0

Danke, aber das hat nicht funktioniert. Der ganze "Bildschirm" ist jetzt nach unten erweitert, viel größer als der eigentliche Bildschirm, Dinge "überlappen" und alle möglichen seltsamen Dinge. Runtime-Fehler auch leider :-( – Ted

+0

Eigentlich könnte es funktionieren, aber das Problem ist wie oben beschrieben - der Bereich "nach unten" ist jetzt sehr groß, dh schon von Anfang an kann ich Faaar runter scrollen, wo der Button ist. Aber ich kann nicht verstehen, warum es so viel Platz nach unten gibt ... Siehe mein EDIT oben. – Ted

Verwandte Themen