2015-10-19 49 views
0

我有一個應用程序,目前只有2個片段。片段1,這有導航抽屜和標題。根據顯示的片段從工具欄添加和刪除視圖

片段2需要自定義視圖,因爲添加菜單項不會工作,因爲我需要對齊。所以我添加如下視圖:

ActionBar.LayoutParams params = new ActionBar.LayoutParams(
      ActionBar.LayoutParams.MATCH_PARENT, 
      ActionBar.LayoutParams.MATCH_PARENT, 
      Gravity.LEFT); 

    //Remove nav drawer "hamburger" 
    mMainActivity.mActionBarDrawerToggle.setDrawerIndicatorEnabled(false); 

    //Remove title from Toolbar 
    bar.setDisplayShowTitleEnabled(false); 

    LayoutInflater layoutInflater = LayoutInflater.from(getActivity()); 
     View postToolBar = layoutInflater.inflate(R.layout.upload_content_toolbar, null); 

    mMainActivity.mToolBar.addView(postToolBar, params); 

這很好,它顯示正確。但是,當我想要返回到前一個片段片段1時,然後我調用mMainActivity.mToolBar.removeView(postToolBar);,因爲用戶可以通過後退按鈕或postToolBar中的按鈕進行導航,因此我會在返回片段1時調用此選項。但是,這個觀點仍然存在。我無法擺脫它。我現在嘗試將可見性設置爲GONE,但這也不起作用。

這對於Action Bar來說非常簡單,但是工具欄似乎已經變得複雜一些。

我必須在每個我的兩個片段中添加一個BaseFragment,其中我聲明瞭工具欄視圖。

任何人可以幫助或發送給我的教程方向嗎?

+0

@Lazai你可以從該方法的工具欄中刪除視圖嗎? –

+0

如果你已經把你的按鈕作爲一個項目,你可以。 – Lazai

+0

@Lazai正如我的問題所述,我有一個自定義視圖,我沒有菜單項,因爲我需要自定義對齊,這是所有問題 –

回答

0

這就是我在這個時候實現的:

in activity onCreateView();

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_home); 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayShowCustomEnabled(true); // enable overriding the default toolbar_home layout 
    getSupportActionBar().setDisplayShowTitleEnabled(false); // disable the default title element here (for centered title) 
    getSupportActionBar().setDisplayShowHomeEnabled(false); 
      cutomToolbarView=getLayoutInflater().inflate(R.layout.custom_toolbar_home, null); 
    getSupportActionBar().setCustomView(cutomToolbarView); 

    } 

,這裏是兩個簡單的方法做魔術

public void setToolbarTitleEnabled(String title) { 
    getSupportActionBar().setDisplayShowCustomEnabled(false); 
    getSupportActionBar().setDisplayShowTitleEnabled(true); 
    getSupportActionBar().setTitle(title); 
} 

public void setCustomToolbarEnabled() { 
    getSupportActionBar().setDisplayShowCustomEnabled(true); 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 
} 

那麼簡單,當你能喜歡這些改變動作條:

時選擇HomeFragment.java或任何你的情況

setToolbarTitleEnabled(CURRENT_TAG); 

何時選擇其他片段:

setCustomToolbarEnabled(); 
相關問題