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

时间:2016-05-17 21:10:30

标签: java android xml navigation-drawer toolbar

我是Android开发的新手,在使用android studio中创建的导航抽屉时,我真的很难实现更多的自定义工具栏(或操作栏)。当我从模板创建导航抽屉活动时,似乎定义工具栏的文件是app_bar_main.xml 这是app_bar_main.xml

.col-offset-1 {
   margin-left: 8.33%;
}

<div class="row">
    <div class="col-2">
        <img src="images/logo.png" width="100px" height="100px" alt="Logo" />
    </div>
    <div class="col-offset-1 col-9 titolo">
        <h1>DANI SPRINGER</h1>
        <h4>FRONT-END NINJA</h4>
    </div>
</div>

正如您所看到的,我尝试更改工具栏的标题(按下)和文本颜色,但是在运行它时,没有任何变化,它仍然只是说MainActivity,这是我的导航抽屉活动被调用。如何定义此工具栏以便我可以对其进行自定义(使标题居中,使背景透明,删除设置按钮等。我确实需要保留汉堡图标以明显打开抽屉) 感谢大家的未来帮助!如果我需要提供我的代码中的任何其他部分,请告诉我

1 个答案:

答案 0 :(得分:1)

为工具栏设置xml内部的值对我来说也没有用。你应该务实地做到这一点。如果您要从Android Studio生成代码,您将在onCreate中看到它正在将工具栏设置为ActionBar:

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;
}