Ocultar barra de acciones en una actividad de fragmentos

Estoy creando el marco para una aplicación y deseo ocultar la barra de acción para la actividad de inicio de sesión. La aplicación va a ser totalmente compuesto de fragmentos porque son impresionantes.

Puedo ocultar la barra de acción muy bien para mi actividad, pero cada vez que ejecuto la aplicación veo mi fragmento en blanco inflado y la barra de acción predeterminada durante unos 2 segundos antes de que logre inflar el fragmento de inicio de sesión.

¿Alguna idea de cómo / dónde debo ocultar la barra de acción, (manteniendo mi marco) para evitar que esto suceda?

LoginActivity.java

public class LoginActivity extends SingleFragmentActivity { @Override protected Fragment createFragment() { return new LoginFragment(); } 

}

SingleFragmentActivity.java

 public abstract class SingleFragmentActivity extends ActionBarActivity { protected abstract Fragment createFragment(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(this instanceof LoginActivity){ ActionBar actionBar = getSupportActionBar(); actionBar.hide(); } setContentView(R.layout.activity_fragment); FragmentManager fm = getSupportFragmentManager(); Fragment fragment = fm.findFragmentById(R.id.fragmentContainer); if (fragment == null) { fragment = createFragment(); fm.beginTransaction() .add(R.id.fragmentContainer, fragment) .commit(); } } 

}

LoginFragment.java

 public class LoginFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_login, parent, false); return v; } 

}

Originalmente tenía SingleFragmentActivity extender FragmentActivity y lo hizo en la instrucción if:

  requestWindowFeature(Window.FEATURE_NO_TITLE); 

Pero tengo la sensación de que es sólo una forma diferente de hacer lo mismo

Editar:

También he intentado fijar el fragment_activity para utilizar un diverso estilo pero no parece trabajar tampoco:

  <style name="NoActionBar" parent="Widget.AppCompat.ActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowActionBar">false</item> </style> 

Bueno, después de unas horas creo que he encontrado la solución para mantener los fragmentos en su lugar para todo y la eliminación de la barra de acción (para todos los dispositivos) para la actividad de lanzamiento sólo:

Manifiesto de Android:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.app" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name="com.company.app.LoginActivity" android:theme="@style/NoActionBar" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Donde el estilo se define así:

  <style name="NoActionBar" parent="Theme.AppCompat.Light"> <item name="android:windowNoTitle">true</item> </style> 

Eso tomó un tiempo para entender porque no hay Theme.AppCompat.Light.NoActionBar, la barra de acción es básicamente conocida como la barra de título en las API más antiguas, y cuando apliqué ese estilo a la actividad en sí (que pensé que era el único Manera de utilizar temas dinámicos) no parece funcionar en absoluto.

Así que esperemos que esta solución sencilla mantendrá la barra de acción para cualquier otra actividad y puede ayudar a alguien en el futuro 🙂

prueba esto:

 if(this instanceof LoginActivity) { if (getActionBar().isShowing()) getActionBar().hide(); } else { if (getActionBar().isShowing()) getActionBar().hide(); } 

o

 if(this instanceof LoginActivity){ ActionBar actionBar = getSupportActionBar(); actionBar.hide(); } else { ActionBar actionBar = getSupportActionBar(); actionBar.hide(); } 

El comentario de Daniel Wilson arriba funciona, pero sólo una pequeña diferencia en cómo lo hice. No definí estilo en absoluto, todo lo que hice en AndroidManifext.xml es que agregué esto a mi actividad:

 android:theme="@style/Theme.AppCompat.NoActionBar" 

Por lo tanto, no tuve que redefinir el estilo de NoActionBar, Acabo de añadir de Theme.AppCompat

Estoy utilizando este código en Activity.onCreate ()

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Hiding the title bar has to happen before the view is created requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); // ... } 
  • ActionBarActivity: no se puede resolver con un tipo
  • Error en startActionMode, appcompat
  • ¿Cómo se eliminan los elementos de menú predeterminados de la barra de herramientas y se reemplazan con iconos diferentes?
  • Configurar OnClick Listener en el título de la barra de acción en Android
  • Cómo apoyar searchItem.setOnActionExpandListener en API nivel 8+?
  • Cómo rectificar NullPointerException en v4.DrawerLayout?
  • ActionBar no muestra la barra de progreso
  • Cómo manejar AsyncTask en ActionBarActivity Fragmentos cuando se utiliza ViewPager?
  • Barra de herramientas extendida con vista personalizada que no se muestra con ancho completo
  • Añadir imagen al lado izquierdo de la barra de acción?
  • Estilo de ActionBar tras actualizar a Android lollipop
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.