记录学习,不定时更新
概述
toolbar用来制作app标题栏
前置工作
导入v7包
1
2
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
MainActivity需要继承AppCompatActivity
1
public class MainActivity extends AppCompatActivity
layout里的AndroidManifest.xml里设置主题,可以在activity中设置
1
2
3
4
5
6
7
8
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
然后layout的activity_main.xml中注册该布局
1
2
3
4
5
6
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
android studio中新建basic activity项目就会自动创建好这些 然后可以在注册的时候添加一些设置
1
2
3
app:title="标题"
app:subtitle="副标题"
app:logo="@mipmap/ic_launcher_round"
详细的看文档: https://developer.android.com/reference/android/widget/Toolbar
然后在onCreat里
1
2
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);//替代ActionBar方法
图标设置及点击事件
然后可以设置个图标,接着对这个图标设置点击事件
1
2
3
4
5
6
7
toolbar.setNavigationIcon(R.mipmap.ic_launcher);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"点击导航栏",Toast.LENGTH_LONG).show();
}
});
设置导航栏及点击事件
在layout里面创建menu文件夹,然后创建menu_main.xml(as会自动生成) 就像这样子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.toolbar.MainActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="设置"
app:showAsAction="never" />
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="测试"
app:showAsAction="never" />
</menu>
在activity中实现
1
2
3
4
5
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
as会自动生成,补上自己所需功能即可 然后是点击事件,写在Oncreat()里就ok
1
2
3
4
5
6
7
8
9
10
11
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
if(menuItem.getItemId() == R.id.action_settings){
Toast.makeText(MainActivity.this,"点击了设置",Toast.LENGTH_SHORT).show();
}else if(menuItem.getItemId() == R.id.action_test){
Toast.makeText(MainActivity.this,"click test",Toast.LENGTH_SHORT).show();
}
return false;
}
});
参考链接:ToolBar使用浅谈