修改App的主题样式,styles.xml文件更改如下:
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
在activity.main中添加ToolBar,在ToolBar中加入常用的一些控件,文字,菜单...
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.ping.toolbar.MainActivity">
android:id="@+id/toolbar"
app:logo="@mipmap/ic_launcher"
app:title="This is title"
app:subtitle="subtitle"
app:navigationIcon="@android:drawable/arrow_down_float"
android:background="@color/colorPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
在res下创建文件夹menu,新建menu.xml文件。如下,always代表单独显示,never表示在列表中显示;
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/toolbar_search"
android:icon="@android:drawable/ic_menu_search"
android:title="search"
app:showAsAction="always"/>
android:id="@+id/toolbar_action1"
android:title="Action1"
app:showAsAction="never"/>
android:id="@+id/toolbar_action2"
android:title="Action2"
app:showAsAction="never"/>
MainActivity.java中需要进行ToolBar的渲染,和添加菜单的点击事件等;
public class MainActivity extends AppCompatActivity {
private Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.toolbar_search:
Log.i("haha", "toolbar_search");
return true;
case R.id.toolbar_action1:
Log.i("haha", "toolbar_action1");
return true;
case R.id.toolbar_action2:
Log.i("haha", "toolbar_action2");
return true;
}
return true;
}
}
ToolBar的复用:我们不可能每个activity都写一个ToolBar布局,所以我们将其提取出来,单独写在一个文件里,然后在别的布局里include即可。还有关于自定义ToolBar,这里推荐看一下参考博客第二篇。