2013-03-15 12 views
6

Obecnie w moim FragmentActivity, ukryć pasek stanu przez w sposobie onCreate, wykonując następujące czynności:Android Wykazują aktywność Tytuł bar/stanu u góry po to jest ukryty

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

to działa bez problemu.

Ale na pełnym ekranie, powiedzmy, że użytkownik kliknie przycisk, będę chciał zamienić inny fragment (pamiętajmy, że jesteśmy w FragmentActivity), mam na myśli zastąpienie aktualnie wyświetlanego fragmentu na pełnym ekranie.

, ale chcę, aby wyświetlany był pasek tytułu/status.

Czy to możliwe? Jeśli tak, to w jaki sposób mogę to zrobić programowo

Odpowiedz

0

Istnieje kilka sposobów robi tak:

Pierwsze podejście:

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(); 

UWAGA! można dołączyć prosty TextView w bok swój układ custom_title_bar

Make You custom_title_bar układ następująco:

<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> 

Drugie podejście:

Activity.setTitle

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

Tutaj można zmienić dynamicznie pasek tytułu używając dwóch metod. Nazwałem je z mojego Activity. Aby zadzwonić pod numer Fragment, potrzebujesz instancji 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

To działa idealnie, powinno być zaakceptowaną odpowiedzią. –

+0

@MarkBuikema powinieneś mieć upvoted wtedy: p – stinepike

+1

wspaniały kumpel !!!! okrzyki za twoją wspaniałą odpowiedź !!! to powinna być zaakceptowana odpowiedź !! – Rudi

Powiązane problemy