2013-03-15 10 views
6

Attualmente nel mio FragmentActivity, mi nascondo la barra di stato, nel metodo onCreate, effettuando le seguenti operazioni:Android Mostra di attività Titolo bar/stato nella parte superiore dopo che è nascosto

requestWindowFeature(Window.FEATURE_NO_TITLE); 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

questo funziona senza alcun problema.

Ma a schermo intero, dire che l'utente fa clic su un pulsante, desidero scambiare un altro frammento (ricorda che siamo in FragmentActivity), intendo sostituire il frammento attualmente visualizzato a schermo intero.

ma desidero visualizzare la barra del titolo/lo stato.

È possibile? Se sì, come posso fare a livello di codice

risposta

0

Ci sono un paio di modi per farlo:

Primo approccio:

FEATURE_CUSTOM_TITLE

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
setContentView(R.layout.foo_layout); 
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_bar); 
or 

youractivity.setTitle(); 

NOTA! è possibile includere una semplice TextView nel lato layout custom_title_bar

fate custom_title_bar di layout come segue:

<LinearLayout   
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 
     <TextView 
     android:id="@+id/titleTextView" 
     style="@android:style/WindowTitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" 
     /> 
    </LinearLayout> 

Secondo approccio:

Activity.setTitle

this.setTitle("My Title!"); 
22

Qui puoi cambia la barra del titolo dinamicamente usando i seguenti due metodi. Li ho chiamati dal mio Activity. Quindi per chiamare da Fragment hai bisogno dell'istanza Activity.

public void hideTitle() { 
     try { 
      ((View) findViewById(android.R.id.title).getParent()) 
        .setVisibility(View.GONE); 
     } catch (Exception e) { 
     } 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().clearFlags(
       WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
    } 

    public void showTitle() { 
     try { 
      ((View) findViewById(android.R.id.title).getParent()) 
        .setVisibility(View.VISIBLE); 
     } catch (Exception e) { 
     } 
     getWindow().addFlags(
       WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
+1

Questo funziona perfettamente, dovrebbe essere la risposta accettata. –

+0

@MarkBuikema dovresti avere svitato allora: p – stinepike

+1

fantastico compagno !!!! evviva per la tua fantastica risposta !!! dovrebbe essere la risposta accettata !! – Rudi

Problemi correlati