2011-12-23 9 views
5

Estoy usando un host de pestañas en mi aplicación de Android. Tengo la barra de título oculta.Barra de título de Android dejando espacio en cuando se reanuda la aplicación

Cuando salgo de la aplicación y vuelvo a ella, tengo un comportamiento extraño.

Si vuelvo a una pestaña usando una actividad de lista con listView.setAdapter, la barra de título está oculta y la aplicación consume el espacio que ocupa. Sin embargo, si reanudo a cualquier pestaña sin listView.setAdapter, la barra de título está oculta, pero el espacio que utilizó fue dejado atrás.

Esto empuja mis pestañas (que se encuentran en la parte inferior de la pantalla) fuera de la pantalla. El espacio vuelve a ser consumido por mi aplicación si luego cambio a cualquier otra pestaña.

He intentado invalidar la mayoría de las vistas obvias en mi aplicación sin éxito. Debajo está mi tab_activity xml. muchas gracias

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@android:id/tabhost" android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" android:layout_height="fill_parent"> 
       <FrameLayout android:id="@android:id/tabcontent" 
        android:layout_width="fill_parent" android:layout_height="0dip" 
        android:layout_weight="1" /> 

       <TabWidget android:id="@android:id/tabs" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_weight="0" /> 
      </LinearLayout> 
     </TabHost> 

    </LinearLayout> 

Aquí está el Manifiesto

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.tar.projectx" android:versionCode="1" 
    android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="8" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 

    <application android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> 
     <activity android:name=".Splash" android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" android:label="@string/app_name" android:screenOrientation="portrait"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="SearchActivity" android:label="SearchActivity" android:screenOrientation="portrait"></activity> 
     <activity android:name="SearchListActivity" android:label="SearchListActivity" android:screenOrientation="portrait"></activity> 
     <activity android:name="ContactActivity" android:label="ContactActivity" android:screenOrientation="portrait"></activity> 
    </application> 
</manifest> 

Curiosamente, si uso el siguiente código en el método onResume de mi mainActivity que mantiene el tabhost, una vez que la tostada desaparece, se actualiza la vista y el espacio en la parte superior es retomado por mi aplicación nuevamente. Obviamente, esto no es una gran solución, pero puede ayudar a alguien a entender lo que está sucediendo.

@Override 
    protected void onResume() { 
     super.onResume(); 

     Toast.makeText(this, "Welcome Back", Toast.LENGTH_LONG).show(); 
    } 
+0

Tengo exactamente el mismo problema. ¿Encontraste una solución? ¿Alguien tiene una solución? – Inna

+0

¿Qué quiere decir con "reanudar la actividad usando una actividad de lista con listView.setAdapter"? –

+0

Hola Inna. Tengo que admitir. Después de un buen ataque de oído de un "consultor de usabilidad" me di cuenta de que nunca debería ocultar la barra de título, ya que el usuario tiene derecho a ver su señal, batería, notificaciones e.t.c. No es de mucha ayuda si es un convento absoluto. Disculpas Sin embargo, si encuentra una respuesta, sería interesante saberlo. –

Respuesta

0

me gustaría tratar de llamar manualmente requestLayout() y/o requestWindowFeature(Window.FEATURE_NO_TITLE) en mi onResume() ... Por otra parte, tratar de ver cuando es el método onMeasure() pidió su opinión. Esto está fuera de mi cabeza;) espero que ayude. ¡Aclamaciones!

+1

no se puede llamar a requestWindowFeature (Window.FEATURE_NO_TITLE) onResume: \ – Necronet

+0

Eso terminaría con un error en tiempo de compilación. – Behnam

0

súplicas establecer tema principal actividad barra de pestañas como android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

Cuestiones relacionadas