赞
踩
如上图,可以看到,有状态栏(status bar)、标题栏(action bar, toolbar)、导航栏(navigation bar) 等,
状态栏 (status bar):是指手机最顶上,显示中国移动、安全卫士、电量、网速等等,在手机的顶部。下拉就会出现通知栏。
标题栏就是指action bar/toolbar,app程序最上边的titlebar。关于actionBar和toolBar后面介绍
NavigationBar:现在很多手机省略了导航栏,一般指手机下面的返回、home、菜单三个键,图片上的导航栏为APP的 导航栏。
SystemBar:状态栏+导航栏 (参考:(参考:https://developer.android.google.cn/training/system-ui/dim))
应用栏(app bar):应用栏也称操作栏,一般是把标题栏(Toolbar) 设置为应用栏 (参考:https://developer.android.google.cn/training/appbar/)
Actionbar是Android3.0之后的一个重要的交互元素,Actionbar位于Activity的顶部,用于显示图标、菜单、标题,广泛用于View的交互、导航等功能。在Android3.0之后,Actionbar是默认添加的,只要你新建的Activity继承于AppCompatActivity,Actionbar是默认添加的。如果是继承的Activity,ActionBar是不显示的,即不显示状态栏。
import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import com.example.androidlearn.R; public class ActionBarMainActivity extends AppCompatActivity { private ActionBar actionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_action_bar_main); // 获取该Activity的ActionBar // 只有当应用主题没有关闭ActionBar时,该代码才能返回ActionBar actionBar = getSupportActionBar(); //使用的是getSupportActionBar 导入的包是androidx的包 } // 为“显示ActionBar”按钮定义事件处理方法 public void showActionBar(View source) { // 显示ActionBar actionBar.show(); } // 为“隐藏ActionBar”按钮定义事件处理方法 public void hideActionBar(View source) { // 隐藏ActionBar actionBar.hide(); } }
1.继承的是AppCompatActivity 然后使用的是getSupportActionBar。才能正常使用actionBar
标题栏显示label设置
代码:
显示:
apk名称显示
activity标题显示
改变标题的内容也可以在代码中使用
setTitle()
1.创建Menu资源文件
Android3.0之后,Google引入了ActionBar,想要统一安卓应用的导航栏样式。但是由于ActionBar难以定制,很大程度上限制了开发人员。较为常见的实现是使用普通的ViewGroup来封装自己的APP Bar,或者使用JakeWharton大神的ActionBarSherlock库。
自2014年Google I/O上Material Design横空出世后,市场上的应用又逐步趋向了样式的风格统一,support library中很快就出来了ToolBar控件,一个定制化的ViewGroup,来完善ActionBar的使用。
ToolBar是ActionBar的替代品。
直接引入ToolBar组件
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:logo="@mipmap/ic_launcher"
app:title="Toolbar"
app:subtitle="subtitle">
Activity中编写
代码有两个地方需要注意:
public class ToolBarMainActivity extends AppCompatActivity { private Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 隐藏掉ActionBar 一定要在setContentView(R.layout.activity_main)之前设置。 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_tool_bar_main); toolbar = findViewById(R.id.toolBar); /** * AppCompatActivity是默认有标题栏的(ActionBar),你要使用Toolbar,就得替代掉原先的ActionBar * 要不然加菜单文件不显示 */ setSupportActionBar(toolbar); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.action_bar_menu,menu); return super.onCreateOptionsMenu(menu); }
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。