//android在5.0后采用toobar代替了actionBar,actionBar是不能在布局中进行填充的,但是toolbar可直接写在布局中,并且可以试想完成的沉侵式标题,下面的对于ToolBar的基本用法介绍
第一个,设置主题样式,在style文件中,没有actionbar的样式
<style name="AppTheme.NoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item>
第二步:xml文件中的布局,采用协调者布局,用android:fitsSystemWindows="true" 可实现沉侵式标题
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:fitsSystemWindows="true" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:fitsSystemWindows="true" android:background="#00ff00" android:id="@+id/action_bar" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v7.widget.Toolbar> </android.support.design.widget.CoordinatorLayout>第三步:使用
/** * Created by hu on 2016/12/18. */ public class ToolBarActivity extends AppCompatActivity { private Toolbar mToolBar; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tool_bar); //关联 ToolBar mToolBar = (Toolbar) findViewById(R.id.action_bar); setSupportActionBar(mToolBar); //设置标题 getSupportActionBar().setTitle("我是ToolBar"); getSupportActionBar().setDisplayHomeAsUpEnabled(true); mToolBar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(ToolBarActivity.this, "点击了,关掉", Toast.LENGTH_SHORT).show(); } }); //设置logo的图片 mToolBar.setLogo(R.mipmap.ic_launcher); //设置二级标题 mToolBar.setSubtitle("真相大白"); } @Override public boolean onCreateOptionsMenu(Menu menu) { //设置menu菜单 getMenuInflater().inflate(R.menu.menu_tool, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { //设置menu菜单的点击事件 switch (item.getItemId()) { case R.id.btn1: Toast.makeText(this,"点击了第一个",Toast.LENGTH_SHORT).show(); break; case R.id.btn2: Toast.makeText(this,"点击了第2个",Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(this,"点击了第3个",Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(this,"点击了第4个",Toast.LENGTH_SHORT).show(); break; } return true; } }
menu菜单代码
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/btn1" android:orderInCategory="100" android:icon="@android:drawable/ic_dialog_email" android:title="@string/action_settings" app:showAsAction="never" /> <item android:id="@+id/btn2" android:orderInCategory="100" android:icon="@android:drawable/ic_dialog_email" android:title="@string/action_settings" app:showAsAction="never" /> <item android:id="@+id/btn3" android:orderInCategory="100" android:icon="@android:drawable/ic_dialog_email" android:title="@string/action_settings" app:showAsAction="never" /> <item android:id="@+id/btn4" android:orderInCategory="100" android:icon="@android:drawable/ic_dialog_email" android:title="@string/action_settings" app:showAsAction="never" /> <item android:id="@+id/btn5" android:icon="@android:drawable/ic_dialog_email" android:orderInCategory="100" android:title="@string/action_settings" app:showAsAction="never" /> </menu>