2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Android 标题栏 状态栏 系统栏 导航栏 应用栏及各个位置的颜色设置

Android 标题栏 状态栏 系统栏 导航栏 应用栏及各个位置的颜色设置

时间:2019-01-08 03:11:18

相关推荐

Android 标题栏 状态栏 系统栏 导航栏 应用栏及各个位置的颜色设置

文章目录

实例图片状态栏标题栏导航栏系统栏应用栏actionBar和toolBar的区别ActionBar代码:显示结果:ActionBar显示选项菜单项 ToolBarToolbar的使用

实例图片

如上图,可以看到,有状态栏(status bar)、标题栏(action bar, toolbar)、导航栏(navigation bar) 等,

状态栏

状态栏 (status bar):是指手机最顶上,显示中国移动、安全卫士、电量、网速等等,在手机的顶部。下拉就会出现通知栏。

标题栏

标题栏就是指action bar/toolbar,app程序最上边的titlebar。关于actionBar和toolBar后面介绍

导航栏

NavigationBar:现在很多手机省略了导航栏,一般指手机下面的返回、home、菜单三个键,图片上的导航栏为APP的 导航栏。

系统栏

SystemBar:状态栏+导航栏 (参考:(参考:https://developer./training/system-ui/dim))

应用栏

应用栏(app bar):应用栏也称操作栏,一般是把标题栏(Toolbar) 设置为应用栏 (参考:https://developer./training/appbar/)

actionBar和toolBar的区别

ActionBar

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;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_action_bar_main);// 获取该Activity的ActionBar// 只有当应用主题没有关闭ActionBar时,该代码才能返回ActionBaractionBar = getSupportActionBar(); //使用的是getSupportActionBar 导入的包是androidx的包}// 为“显示ActionBar”按钮定义事件处理方法public void showActionBar(View source){// 显示ActionBaractionBar.show();}// 为“隐藏ActionBar”按钮定义事件处理方法public void hideActionBar(View source){// 隐藏ActionBaractionBar.hide();}}

显示结果:

1.继承的是AppCompatActivity 然后使用的是getSupportActionBar。才能正常使用actionBar

标题栏显示label设置

activity 里面的 android:label 优先级 > application 里面的android:labelandroid:label属性 用来设定apk的名称以及activity的标题。

代码:

显示:

apk名称显示

activity标题显示

改变标题的内容也可以在代码中使用

setTitle()

ActionBar显示选项菜单项

1.创建Menu资源文件

always :表示总是将MenuItem显示在ActionBar上collapseActionView :将该ActionView折叠成普通菜单项ifRoom :当ActionBar位置足够时才显示MenuItemnever :不将该MenuItem显示在ActionBar上withText :将该MenuItem显示在ActionBar上,并显示该菜单项的文本 重写onCreateOptionMenu创建菜单项方法和onOptionItemSelected方法设置监听事件

3.显示效果

ToolBar

Android3.0之后,Google引入了ActionBar,想要统一安卓应用的导航栏样式。但是由于ActionBar难以定制,很大程度上限制了开发人员。较为常见的实现是使用普通的ViewGroup来封装自己的APP Bar,或者使用JakeWharton大神的ActionBarSherlock库。

自Google I/O上Material Design横空出世后,市场上的应用又逐步趋向了样式的风格统一,support library中很快就出来了ToolBar控件,一个定制化的ViewGroup,来完善ActionBar的使用。

ToolBar是ActionBar的替代品。

Toolbar的使用

直接引入ToolBar组件

<androidx.appcompat.widget.Toolbarandroid: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;@Overrideprotected 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);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.action_bar_menu,menu);return super.onCreateOptionsMenu(menu);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。