安卓导航抽屉上的自定义工具栏
我是新开发的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,这是我的导航抽屉活动被调用。我怎样才能定义这个工具栏,以便我可以自定义它(中心标题,使背景透明,删除设置按钮等,我需要保持汉堡图标显然打开抽屉) 感谢您的未来帮助大家!让我知道是否需要提供我的代码的任何其他部分
设置工具栏的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;
}
非常感谢您的帮助!我使用了你展示的第一种方法,它完美地工作。现在,我想知道您是否可以帮助我将标题居中并让菜单透明?我没有看到任何方法显示改变标题的对齐方式 –
@GarrettHuff是的,我可以给你一个这样的手,只是回复这个,我会给你我的电子邮件,所以我们可以谈论线程。 –
听起来不错,已经准备好了,除非我有办法直接在这里给你发信息,不知道你是否会在这个帖子上留下你的电子邮件。如果没有,请告诉我该怎么做(即时消息堆栈溢出)。谢谢! –
后整个布局代码,样式,然后发布onCreate方法。我会看看它。 –