2013-03-15 22 views
6

Hiện nay trong FragmentActivity của tôi, tôi ẩn thanh trạng thái bằng cách, trong phương pháp onCreate, cách làm như sau:Android Hiện Hoạt động Tiêu đề bar/trạng thái ở phía trên sau khi nó được ẩn

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

làm việc này không có vấn đề.

Nhưng ở chế độ toàn màn hình, người dùng nhấp vào nút, tôi sẽ hoán đổi trong một đoạn khác (nhớ chúng tôi đang ở FragmentActivity), ý tôi là thay thế đoạn hiện đang hiển thị ở chế độ toàn màn hình.

nhưng tôi muốn hiển thị thanh tiêu đề/trạng thái.

Điều này có khả thi không? Nếu vậy, làm thế nào tôi có thể làm điều đó theo chương trình

Trả lời

0

Có vài cách để làm như vậy:

Đầu tiên tiếp cận:

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

LƯU Ý! bạn có thể bao gồm một đơn giản TextView ở bên bố trí của bạn custom_title_bar

Làm cho bạn custom_title_bar bố trí như sau:

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

Cách tiếp cận thứ hai:

Activity.setTitle

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

đây bạn có thể thay đổi thanh tiêu đề động của bạn ly sử dụng hai phương pháp sau đây. Tôi gọi chúng từ số Activity của tôi. Vì vậy, để gọi từ số Fragment, bạn cần số 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

Điều này hoạt động hoàn hảo, phải là câu trả lời được chấp nhận. –

+0

@MarkBuikema bạn nên có upvoted sau đó: p – stinepike

+1

tuyệt vời mate !!!! chúc mừng cho câu trả lời tuyệt vời của bạn !!! nó phải là câu trả lời được chấp nhận !! – Rudi