Android ActionBar
android的ActionBar是3.0才推出的,3.0之前称之为AppBar。为了向后兼容,ActionBar位于Android的支持库AppCompat中,所以要使用ActionBar先必须依赖AppCompat库(现在新建的工程默认都依赖此库了)
implementation 'androidx.appcompat:appcompat:1.3.0'
如果没有在主题Theme中或Activity的代码中明确指定NoActionBar,那么ActionBar都是默认存在的,要获取ActionBar对象使用
ActionBar ationBar = getSupportActionBar();
ActionBar就四个东西
左一 一般联动DrawerLayout使用
private DrawerLayout dl;
private ActionBarDrawerToggle toggle;
toggle = new ActionBarDrawerToggle(this,dl,R.string.open,R.string.close);
dl.addDrawerListener(toggle);
toggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (toggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
左二一般显示图标和标题
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher_round);
getSupportActionBar().setDisplayUseLogoEnabled(true);
...
右一右二使用menu菜单
- 新建 res/menu/main_menu.xml ,示例如下:
<?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/main_search"
android:icon="@android:drawable/ic_menu_search"
android:title="search"
app:showAsAction="always" />
</menu>
- 在Activity中的代码如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);
return true;
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
if (item.getItemId() == R.id.main_search){
return true;
}
return super.onOptionsItemSelected(item);
}
分类:
Android
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端