隐藏隐藏后,Android显示活动标题/状态栏位于顶部

时间:2013-03-15 16:43:42

标签: android android-activity statusbar

目前在我的FragmentActivity中,我使用onCreate方法隐藏状态栏,执行以下操作:

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

这没问题。

但是在全屏幕中,假设用户单击一个按钮,我会想要交换另一个片段(记住我们在FragmentActivity),我的意思是替换全屏显示的当前片段。

但我希望显示标题栏/状态。

这可能吗?如果是这样,我该如何以编程方式进行

2 个答案:

答案 0 :(得分:22)

您可以使用以下两种方法动态更改标题栏。我从Activity打电话给他们。因此,要从Fragment拨打电话,您需要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 :(得分:0)

有几种方法可以这样做:

第一种方法:

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

注意!您可以在布局TextView

旁边添加一个简单的custom_title_bar

按如下方式设置custom_title_bar布局:

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

第二种方法:

Activity.setTitle

this.setTitle("My Title!");