安卓导航抽屉上的自定义工具栏

问题描述:

我是新开发的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方法。我会看看它。 –

设置工具栏的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

听起来不错,已经准备好了,除非我有办法直接在这里给你发信息,不知道你是否会在这个帖子上留下你的电子邮件。如果没有,请告诉我该怎么做(即时消息堆栈溢出)。谢谢! –