2015-11-18 52 views
-3

我無法通過代碼行顯示和刪除工具欄。 它可以做到這一點? 如果我在一個片段,並希望短工具欄和ws加載後出現。 我試過以下手段無濟於事。無法控制工具欄的可見性

工具欄

toolbar = (Toolbar) findViewById(R.id.toolbar); 

setSupportActionBar(toolbar); 

ActionBar actionBar = getSupportActionBar(); 

if(actionBar != null) { 
    actionBar.setDisplayShowTitleEnabled(false); 
} 

main_layout.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/DrawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:elevation="7dp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <include 
      android:id="@+id/toolbar" 
      layout="@layout/toolbar"> 
     </include> 

     <FrameLayout 
      android:id="@+id/fragContainer" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:tag="fragContainer" /> 

    </LinearLayout> 

    <RelativeLayout 
     android:layout_width="@dimen/drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="start"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/RecyclerView" 
      android:layout_width="@dimen/drawer_width" 
      android:layout_height="fill_parent" 
      android:layout_gravity="start" 
      android:fitsSystemWindows="true" 
      android:background="@color/primary" 
      android:scrollbars="vertical"> 

     </android.support.v7.widget.RecyclerView> 

     <LinearLayout 
      android:id="@+id/footer_menu" 
      android:layout_width="@dimen/drawer_width" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:orientation="horizontal" > 

      <ImageView 
       android:id="@+id/ivFooter" 
       android:layout_width="wrap_content" 
       android:layout_height="35dp" 
       android:layout_gravity="bottom|center" 
       android:maxWidth="690dp" 
       android:src="@drawable/rodape_menu" 
       android:layout_margin="5dp"/> 

     </LinearLayout> 

    </RelativeLayout> 

</android.support.v4.widget.DrawerLayout> 

toolbar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    android:fitsSystemWindows="true" 
    app:elevation="4dp" 
    app:theme="@style/CustomActionBar"/> 

CustomActionBar.xml

<item name="windowActionBar">false</item> 
<!-- Support library compatibility --> 
<item name="windowActionBarOverlay">true</item> 

嘗試代碼

getSupportActionBar().hide(); 
getSupportActionBar().show(); 

findViewById(R.id.toolbar).setVisibility(View.GONE); 
findViewById(R.id.toolbar).setVisibility(View.VISIBLE); 
+0

你能告訴我爲什麼你使用'ActionBar actionBar = getSupportActionBar();'???刪除它!您已經將工具欄設置爲您的操作欄。 –

回答

1

如果將工具欄設置爲操作欄,該怎麼辦?

mToolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(mToolbar); 
getSupportActionBar().hide(); 

getSupportActionBar().setDisplayShowHomeEnabled(true); 
getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

然後你可以得到操作欄並隱藏它或任何你想要的地方。

編輯:如果你沒有在你的佈局來看,是行不通的:

<LinearLayout 
    android:id="@+id/container_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <include 
     android:id="@+id/toolbar" 
     layout="@layout/toolbar" /> 
</LinearLayout> 

工具欄:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:local="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?attr/actionBarSize" 
    android:background="?attr/colorPrimary" 
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 

這個人去在底部你RelativeLayout根佈局視圖。

+0

是的,我做到了,因爲當你的命令不起作用getSupportActionBar()。hide(); –

+0

只是嘗試它,並完美的作品。您的代碼中可能存在問題。你真的有工具欄在你的活動XML? –

+0

xml中沒有錯誤。我改變了我的問題,試圖找出可能發生的事情。 –