2016-05-17 148 views
0

我是新開發的Android開發人員,當使用在android studio中創建的導航抽屜時,我非常努力地實現更多自定義工具欄(或操作欄)。當我創建從模板抽屜式導航欄中的活動,這似乎是定義工具欄是app_bar_main.xml 這裏的文件是app_bar_main.xml 安卓導航抽屜上的自定義工具欄

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay" 
    > 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     android:title="Press" 
     android:titleTextColor="#FFFFFF" 
     /> 

</android.support.design.widget.AppBarLayout> 

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

</FrameLayout> 

正如你所看到的,我試圖更改工具欄的標題(按)和文本顏色,但是在運行時,沒有任何更改,它仍然只是說MainActivity,這是我的導航抽屜活動被調用。我怎樣才能定義這個工具欄,以便我可以自定義它(中心標題,使背景透明,刪除設置按鈕等,我需要保持漢堡圖標顯然打開抽屜) 感謝您的未來幫助大家!讓我知道是否需要提供我的代碼的任何其他部分

+0

後整個佈局代碼,樣式,然後發佈onCreate方法。我會看看它。 –

回答

1

設置工具欄的xml裏面的值從來沒有爲我工作。你應該務實地做到這一點。如果您正在生成從Android Studio中的代碼,你會的onCreate裏面看到它是工具欄設置爲動作條:

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

一種可能的選擇是去除setSupportActionbar()。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    // setSupportActionBar(toolbar); 
    toolbar.setTitle("Testing"); 
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent)); 
    toolbar.inflateMenu(R.menu.menu_main); 
    toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      return false; 
     } 
    }); 
} 

另一種是調用getSupprtActionBar()

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main2); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    toolbar.setTitleTextColor(ContextCompat.getColor(this, R.color.colorAccent)); 
    setSupportActionBar(toolbar); 
    if (getSupportActionBar() != null) { 
     getSupportActionBar().setTitle("Testing"); 
    } 
} 

/** 
* Here is where you would handle the actionbar items. 
*/ 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main2, menu); 
    return true; 
} 
+0

非常感謝您的幫助!我使用了你展示的第一種方法,它完美地工作。現在,我想知道您是否可以幫助我將標題居中並讓菜單透明?我沒有看到任何方法顯示改變標題的對齊方式 –

+0

@GarrettHuff是的,我可以給你一個這樣的手,只是回覆這個,我會給你我的電子郵件,所以我們可以談論線程。 –

+0

聽起來不錯,已經準備好了,除非我有辦法直接在這裏給你發信息,不知道你是否會在這個帖子上留下你的電子郵件。如果沒有,請告訴我該怎麼做(即時消息堆棧溢出)。謝謝! –