16

Ich möchte 10dp Marge zwischen EditText und Soft Keyboard hinzufügen.Wie wird der Rand zwischen EditText und Soft Keyboard hinzugefügt?

enter image description here Hier ist meine XML:

<RelativeLayout 
    android:id="@+id/BottomLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:background="@drawable/bottom_glass" > 

    <EditText 
     android:id="@+id/message" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:background="@drawable/grey" 
     android:ems="10" 
     android:layout_marginBottom="10dp" 
     android:hint="Enter Message" 
     android:textColor="#ffffff" > 


    </EditText> 

    <ImageButton 
     android:id="@+id/sendMessageButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="20dp" 
     android:layout_toRightOf="@+id/message" 
     android:background="@android:color/transparent" 
     android:src="@drawable/sendselector" /> 

    <ImageButton 
     android:id="@+id/imageButton2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginRight="20dp" 
     android:layout_toLeftOf="@+id/message" 
     android:background="@android:color/transparent" 
     android:src="@drawable/sendmediaselector" /> 

</RelativeLayout> 

Hier ist mein onCreate():

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
    messageText.setOnTouchListener(new OnTouchListener(){ 

       @Override 
       public boolean onTouch(View v, MotionEvent event) { 
          ((Swipe)getActivity()).getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_UNSPECIFIED); 
        return false; 
       }}); 

I viewpager und Vollbild-Thema verwenden. Der folgende EditText ist in meinem 3. Fragment.

Ich habe android:windowSoftInputMode="adjustResize|adjustPan" und android:windowSoftInputMode="adjustResize" verwendet, aber nichts passiert.

+0

Haben Sie versucht, die Polsterung des EditText verändern? –

+0

Nein, ich will es in der Mitte des Layouts – Punit

+0

Ich bin neu auf Android so weiß nicht, was besser ist. – Punit

Antwort

2

Dies scheint zu funktionieren, hat jedoch einige unerwünschte Auswirkungen auf das Layout.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

Wenn jemand weiß, wie man das mit ADJUST_PAN arbeiten, das wäre großartig!

+0

Funktioniert das im Vollbildmodus? Weil meine App im Vollbildmodus ist. Dies funktioniert gut ohne Vollbild ... – Punit

+0

Nicht so sicher darüber, vielleicht könnten andere in ihre Erfahrungen eingreifen. – Veeru

+0

ADJUST_RESIZE funktioniert nicht im Vollbildmodus. Nicht sicher über PAN, aber wahrscheinlich dasselbe. – mithunc

7

Ich finde das Attribut paddingBottom kann den Abstand zwischen editText und der Tastatur beeinflussen. Sie können wie folgt tun:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="110dp"> 
    <ImageView 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:background="@drawable/your_edit_text_background"/> 
    <EditText 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="10dp"/> 
</RelativeLayout> 

Dies wird Ihre Tastatur-Marge Ihre EditText von 10dp

+1

android: paddingBottom = "5dp", nicht padding_bottom –

+0

Bewegen Sie den Hinweis und den Cursor innerhalb Ihres Edittextes nach oben. Daher kann ein Teil des Textes, den Sie in den Editiertext eingeben, verdeckt sein –

-1

ich das gleiche Problem gelöst, indem sie einfach nur mit zwei Linien

Fügen Sie diese Zeile in EditText -

android:imeOptions="actionSend|flagNoEnterAction" 

und diese Zeile in der Datei Manifeast in Activity Tag hinzufügen -

und entfernen Sie alle Code, den Sie verwenden, um dies zu tun, wie onTouchListner und es sollte funktionieren.

0

Versuchen Sie RelativeLayout in ScrollView, hinzufügen und dann folgenden Code hinzu:

editTextField.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     // TODO Auto-generated method stub 
     if (hasFocus) 
      scrollView.scrollBy(0, 150); 

    }); 
Verwandte Themen