i洗
ToolBar是android5.0引入的一个新控件,ToolBar出现之前,我们很多时候都是使用ActionBar以及ActionActivity实现顶部导航栏,因此ToolBar可以理解为ActionBar的升级,ToolBar大大扩展了ActionBar,使用更加灵活,ToolBar更像是一个View元素,可以被放置在View树体系的任意位置,可以应用动画,可以跟的随ScrollView滚动,可以与布局中其他View交互;
使用ToolBar有两种方式:
1单独作为一个控件去使用;
2与ActionBar结合使用;
注意:使用自定义属性的时候需要吧命名空间”app“添加到跟节点
xmlns:app="http://schemas.android.com/apk/res-auto
下面是ToolBar控件及一些常用属性:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize" //设置ToolBar的最少高度
android:background="?attr/colorPrimary" //设置背景
app:navigationIcon="@drawable/icon_back_32px" //通过自定义属性设置导航按钮
app:title="title" //通过自定义属性设置title
>
在Style文件中进行配置,为了完全去掉ActionBar:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/white</item> //设置title的字体颜色,设置完自动更新,
<!--设置两遍 windowActionBar和windowNoTitle一个加android声明 ,一个不加-->
<item name ="android.windowActionBar">false</item>
<item name ="android.windowNoTitle">true</item>
<item name ="windowActionBar">false</item>
<item name ="windowNoTitle">true</item>
</style>
JAVA代码:
public class MainActivity extends AppCompatActivity {
private Toolbar mToolBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mToolBar =(Toolbar)this.findViewById(R.id.toolbar);
//在代码中设置导航按钮
//mToolBar.setNavigationIcon(R.drawable.icon_back_32px);
//导航按钮的监听事件
mToolBar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,"点击了导航按钮",Toast.LENGTH_SHORT).show();
}
});
//将toolbar与menu布局文件进行绑定;
mToolBar.inflateMenu(R.menu.menu_main);
mToolBar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
int id = item.getItemId();
if(id == R.id.action_settings){
Toast.makeText(MainActivity.this,"点击了Setting按钮",Toast.LENGTH_SHORT).show();
return true;
}
return false;
}
});
}
}
使用原生的ToolBar,画面太美,不忍直视,明天学习自定义ToolBar;