您的位置:首页 > 移动开发

ToolBar代替Actionbar在AppCompatActivity的使用

2016-05-08 23:23 489 查看
新api推荐带ActionBar的Activity,继承AppCompatActivity 处理标题栏

导入项目工具包。兼容包:

compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:support-v13:23.3.0'




1 .需要给Activity设置主题 无Actionbar即可

android:theme="@style/Theme.AppCompat.Light.NoActionBar">


2.用toolbar代替Actionbar

<android.support.v7.widget.Toolbar
android:id="@+id/bmtool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</android.support.v7.widget.Toolbar>


在代码中转成Actionbar:

tb= (android.support.v7.widget.Toolbar) findViewById(R.id.bmtool_bar);
setSupportActionBar(tb);

获取Actionbar:(这里给Actionbar设置了一个home id的属性)

ActionBar ab=getSupportActionBar();
if(ab!=null){
ab.setHomeAsUpIndicator(R.drawable.menu_home);
ab.setDisplayHomeAsUpEnabled(true);
}

因为Toolbar 已经加入到Activity 中了,因此上下文菜单布局,是可以显示到标题栏中的!:

public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater=getMenuInflater();
menuInflater.inflate(R.menu.menu_main,menu);
return true;
}


为菜单内容设置菜单项:

<menu 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"
tools:context="com.cuizehui.Actitys.HomeActivity">

<item android:id="@+id/more"
android:title="更多"
android:icon="@drawable/ic_drag"
app:showAsAction="always"
android:orderInCategory="100"/>

</menu>


3为标题栏设置点击事件:

public boolean onOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){
case R.id.more:
mMenuDialogFragment.show(fragmentManager,ContextMenuDialogFragment.TAG);//这是一个插件!!
break;
case android.R.id.home:
finish();
}
return super.onOptionsItemSelected(item);
}


(android.R.id.home 这个ID 对应上面为Actionbar设置home id 的方法和图标)

最后 写一个复用性高的toolbar对自己身体好:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimaryDark"
app:titleTextColor="@android:color/white"
android:fitsSystemWindows="true"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: