Espacio vacío cuando vuelvo a Actividad (Teclado suave forzado)

Yo tengo unActionView con el elemento de menú enActionBar (utilizandoActionBarSherlock), Soy capaz de mostrar unEditText como un campo de búsqueda en él. Es un aporte para lanzar otro.Activity con unCustomView en ActionBar, que muestra el mismo diseño (no uso nada para forzar elSoftKeyboard para aparecer en esta segunda actividad, no hay problema aquí). Cuando quiero que el Teclado suave aparezca / desaparezca automáticamente cuando la vista se colapsa en la primera actividad, uso:

método openKeyboard

mImm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);  

método closeKeyboard

mImm.hideSoftInputFromWindow(edittext.getWindowToken(), 0); 

Yo uso elActionExpandListener para hacer que el SoftKeyboard aparezca o desaparezca cuando elView Se expande o colapsa. Con estos dos métodos anteriores, tengo el resultado esperado. Encontré esto en varias preguntas sobre SO (especialmente enCerrar / ocultar el teclado suave de Android yMostrando el teclado virtual para SearchView en ActionBar oForzando el teclado suave abierto).

Solo para entender, cuando lo usé.SHOW_IMPLICIT oSHOW_FORCED solo, no tuvo efecto en las versiones inferiores (como 2. +). El EditText estaba enfocado pero el teclado no apareció (entonces, supongo que fue algo malo). En versiones recientes (como 4. + por ejemplo), fue un buen efecto y no hubo problema. Entonces, forcé el teclado para aparecer con elmétodo openKeyboard encima.

Ahora, tengo algunos problemas con esto ...
En las versiones inferiores, obtuve espacio "vacío" antes y después de que se creara / destruyera el teclado, puedo vivir con esto.PERO en versiones recientes, obtuve el espacio "vacío" que se muestra cuandovolver a la primera actividad. ¡Y está aquí durante menos de un segundo, pero suficiente para ver eso!
Para comprender mejor lo que sucede, vea la imagen a continuación:

1. Segunda actividad: Presiono el botón de inicio: el teclado desaparece correctamente.
2. (volver a) Primera actividad: mi vista de lista está cubierta por un espacio "vacío" (color de fondo en mi aplicación). Y desaparece(Esta es la misma altura de la SoftKeyboard, ¡sin duda!)

Supongo que es porqueForcé el teclado para que apareciera en mi primera actividadAunque también forcé el teclado a esconderse. cuando voy a la segunda, pero ¿cómo puedo resolver el espacio "vacío" cuando vuelvo a la primera actividad?

Resumen
1) Una actividad => presione el elemento en el menú> ver contraer> muestre el teclado> pulse el texto> envíelo> oculte el teclado> inicie la actividad B.
2) B activity => setCustomView en la barra de acciones> muestra el teclado solo si el texto de edición está enfocado / pulsado> toque texto> enviarlo> ocultar teclado> actualizar contenido> presione el botón de inicio> regresar a una actividad
3) Desaparece una pantalla de actividad => pantalla "vacía">.

Cualquier ayuda será muy apreciada.
Gracias por tu tiempo.

EDITAR
Agrego mi código de mi primera clase para ver si alguien me dice qué estoy haciendo mal. Tal vez sea mi código el que hace el problema.

Menú (ActionView)

ActionBar actionBar;
MenuItem itemSearchAction;
EditText mSearchEdit;
InputMethodManager mImm;

@Override
public boolean onCreateOptionsMenu(final Menu menu) {
    getSupportMenuInflater().inflate(R.menu.main, menu);

    itemSearchAction = menu.findItem(R.id.action_search);
    View v = (View) itemSearchAction.getActionView();
    mSearchEdit = (EditText) v.findViewById(R.id.SearchEdit);
    itemSearchAction.setOnActionExpandListener(this);

    return true;
}  

OnActionExpandListener

@Override
public boolean onMenuItemActionExpand(MenuItem item) {
    actionBar.setIcon(R.drawable.ic_app_search); // change icon
    mSearchEdit.requestFocus(); // set focus on edittext
    openKeyboard(); // the method above
    mSearchEdit.setOnEditorActionListener(new OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_SEARCH || (event != null && event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
                closeKeyboard(); // same method as above
                // new Intent() to second activity 
                // perform with startActivity();
                itemSearchAction.collapseActionView(); // collapse view
                return true;
            }
            return false;
        }
    });
    // add a clicklistener to re-open the keyboard on lower versions
    mSearchEdit.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openKeyboard();
        }  
    });
    return true;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
    actionBar.setIcon(R.drawable.ic_app_logo); // change icon again
    if(!(mSearchEdit.getText().toString().equals("")))
                            mSearchEdit.setText(""); // reinitial the edittext
    return true;
}  

OnOptionsItemSelected

// I had this verification when I make new Intent() to  
// a new activity, just in case (works like a charm)  
if(itemSearchAction.isActionViewExpanded())
         itemSearchAction.collapseActionView();  

ActionView (Item + layout)

<item
     android:id="@+id/action_search"
     android:icon="@drawable/ic_app_search"
     android:title="@string/action_search"
     android:showAsAction="ifRoom|collapseActionView"
     android:actionLayout="@layout/search_actionview" />  

<EditText
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/SearchEdit"
     android:layout_width="fill_parent" android:layout_height="wrap_content"
     android:layout_gravity="right|bottom" android:gravity="left"
     android:layout_marginBottom="6dip"
     android:hint="@string/action_search"
     android:textColor="@color/white"
     android:textColorHint="@color/white"
     android:singleLine="true"
     android:cursorVisible="true"
     android:inputType="text"
     android:imeOptions="actionSearch|flagNoExtractUi"
     android:imeActionLabel="@string/action_search"
     android:focusable="true" android:focusableInTouchMode="true"
     android:background="@drawable/bt_edit_searchview_focused" >

     <requestFocus />
</EditText>

ACTUALIZAR

Veo muchos problemas similares, conEditText enActionBar lo que no hace que aparezca el teclado, incluso el enfoque se ha establecido. Intenté esto de nuevo (incluso si ya lo he probado varias veces):

/*
* NOT WORKING 
* Sources: https://stackoverflow.com/questions/11011091/how-can-i-focus-on-a-collapsible-action-view-edittext-item-in-the-action-bar-wh  
* https://stackoverflow.com/a/12903527/2668136
*/
int mode = WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE;
getWindow().setSoftInputMode(mode);  

postDelayed() to show: .showSoftInput(mSearchEdit, InputMethodManager.SHOW_IMPLICIT); - 200ms (Not working on lower versions)
postDelayed() to hide: .hideSoftInputFromWindow(mSearchEdit.getWindowToken(), 0); - 200ms  

new Runnable() on edittext => requestFocus() + showSoftInput(SHOW_IMPLICIT/FORCED/HIDE_NOT_ALWAYS/HIDE_IMPLICIT_ONLY)

Me parece, soloSHOW_FORCED|HIDE_IMPLICIT_ONLY puede forzar que el teclado se muestre automáticamente cuando la vista se colapsa. Después de esto, en todas las versiones, debo hacer unhideSoftInputFromWindow a 0 para ocultarlo.
PERO esto muestra el teclado incluso si se presiona el texto de edición, así que agregué unClickListener para forzar que el teclado se muestre de nuevo (esto sucede solo en versiones inferiores).

ACTUALIZACIÓN2:
Claramente es raro, cuando intento hacer un poco.Thread Como vi en muchas respuestas de SO (con / sin ABS), no sucede nada en versiones inferiores.
Lo intenté de una manera diferente. Creé el nuevo hilo para tener poco tiempo antes de llamar a la nueva intención de ocultar el teclado. Tuve el teclado que obligó a cerrar, OK. Y luego abrí la nueva actividad, OK. Pero ahora cuando vuelva, ¡vale la pena! El espacio "vacío" también está en versiones inferiores cuando vuelvo. Hice esto:

// close the keyboard before intent
closeKeyboard();
// make the intent after 500 ms
Handler handler = new Handler();
Runnable runner = new Runnable() {
    public void run() {
        // new intent with startActivity()
    }
};
handler.postDelayed(runner, 500); 
// collapse the View  
itemSearchAction.collapseActionView();  

¡Me da dolores de cabeza! No entiendo por qué, en mi caso, la sugerencia anterior no funciona, mientras que en otras respuestas, cuando usan un nuevo hilo para mostrar / ocultar el teclado, esto funciona perfectamente.

NOTA: mis pruebas estaban en(emulador :) GalaxyNexus, NexusS, NexusOne y(dispositivos reales :) Samsung GalaxySL (2.3.6) y Nexus4 (4.4).

Si alguien me puede ayudar con esta fea situación. Gracias por adelantado.

Respuestas a la pregunta(2)

Su respuesta a la pregunta