programacion - manual de android en pdf
¿Cómo agregar margen entre EditText y Soft Keyboard? (4)
Quiero agregar un margen de 10dp entre EditText y Soft Keyboard.
Aquí está mi 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>
Aquí está mi 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;
}});
Estoy usando viewpager y el tema de pantalla completa. El siguiente EditText está en mi tercer fragmento.
He usado android:windowSoftInputMode="adjustResize|adjustPan"
y android:windowSoftInputMode="adjustResize"
, pero no sucedió nada.
Esto parece funcionar, aunque tiene un efecto no deseado en el diseño.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Si alguien sabe cómo hacer que esto funcione con ADJUST_PAN, ¡sería genial!
Intente agregar su RelativeLayout
en ScrollView
y luego agregue el siguiente código:
editTextField.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// TODO Auto-generated method stub
if (hasFocus)
scrollView.scrollBy(0, 150);
});
Me parece que el atributo paddingBottom
puede afectar la distancia entre el editText
y el teclado. Puedes hacer así:
<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>
Esto hará que su teclado EditText
su EditText
por 10dp
Resolví el mismo problema agregando solo dos líneas.
Añadir esta línea en EditText
-
android:imeOptions="actionSend|flagNoEnterAction"
y esta línea en el archivo Manifeast en la etiqueta Activity
añadir -
<activity
android:name="----"
android:icon="---"
android:windowSoftInputMode="stateVisible|adjustResize"
android:label="@string/app_name"
android:theme="-----" />
y elimine todo el código que use para hacer esto como onTouchListner
y debería funcionar.