studio programacion herramientas fundamentos con avanzado aplicaciones android android-fragments android-viewpager android-edittext android-keypad

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.