zoukankan      html  css  js  c++  java
  • Android学习笔记(35):Android活动条

    Android3.0之后,GoogleUI导航设计上进行了一系列的改革,当中有一个很好用的新功能就是引入的ActionBar,用于代替3.0之前的标题栏,并提供更为丰富的导航效果。

    ActionBar能够显示应用图标和Activity标题,还有Action Item活动项。

    ActionBar的主要用途:

    1.能够设置该Activity的图标和标题。

    2.能够配合Fragment用标签或是下拉列表实现不同页面的导航。

    3.能够加入Action View为用户提供快捷的訪问。

    启用ActionBar

    (1).高于Android3.0的版本号都是默认启用ActionBar的。我们会发现新建的Activity默认继承自ActionBarActivity

    假设希望关闭ActionBar我们能够把主题设置为Xxx.NoActionBar。像以下这样:

    <activity android:theme="@android:style/Theme.Holo.NoActionBar">

    (2).我们也能够通过在代码中调用show()或者hide()方法来对应的显示或者隐藏ActionBar

    .在我们使用actionBar.hide()方法时。系统默认会将ActionBar占用的空间分配给界面,此时显示的界面将会又一次绘制。相同调用actionBar.show();时也会又一次绘制界面。

    假设我们一个程序须要频繁的显示或者隐藏ActionBar的话,这样就不会有良好的效果。

    Google提供给一个属性能够让ActionBar浮在界面上,当然你能够让ActionBar的背景为透明。这样会有良好的体验效果。

    (3).将选项菜单显示在活动条上

    这是为了解决很多手机已经不再提供Menubutton的问题。

    MenuItem提供了setShowAsAction(int actionEnum)方法将菜单项显示在ActionBar上作为Action Item

    actionEnum可选的參数值例如以下:

    SHOW_AS_ACTION_ALWAYS:总是将该MenuItem显示在ActionBar上。

    SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW:将该Action View折叠成普通菜单项

    SHOW_AS_ACTION_IF_ROOM:但ActionBar位置足够时显示该MenuItem

    SHOW_AS_ACTION_NEVER:不显示在ActionBar

    SHOW_AS_ACTION_WITH_TEXT:仅仅显示该MenuItem的文本在ActionBar上。

     

    当然我们也能够改动菜单项的XML文件来将其显示在ActionBar上,仅仅须要改动<item.../>android:showAsAction属性。

     

    当手机顶部的ActionBar空间不够时,Android对不同的设备有不同的处理方式。有MENU按键的手机会将不能显示的菜单项显示在MENU按键激发的菜单上,没有MENU按键的手机则会在ActionBar的最后显示一个折叠图标。单击该图标会出现剩余的菜单项。

     

    (4).将活动条上的应用图标转变成可点击的图标。

    能够调用例如以下的这些方法:

    setDisplayHomeAsUpEnabled(boolean showHomeAsUp):设置应用图标能否够点击,并在图标上加入一个向左的箭头,通常是用于回退到上级Activity

    setDisplayOptions(int options):控制ActionBar的显示选项。

    setDisplayShowHomeEnable(boolean showHome):设置是否显示应用程序图标。

    setHomeButtonEnabled(boolean enabled):设置是否将应用程序图标转变成可单击的button。

     

    单击这个图标时。系统会调用Activity带有android.R.id.home IDonOptionsItemSelected()方法。

    为了能响应点击事件,我们还须要在选项菜单的onOptionsItemSelected方法中添加对应的处理。

     

    (5).在活动条上显示Action View

    我们能够通过例如以下两种方式在活动条上加入普通的组件。

    1.定义Action Item时使用android:actionViewClass属性指定Action View的实现类。

    2定义Action Item时使用android:actionLayout属性指定Action View的实现类。

     

    (6).使用ActionBar实现Tab导航

    ActionBar上显示多个Tab标签,单击Tab标签会导航到指定的Tab页面。

    实现Tab导航的过程例如以下:

    1.为ActionBar设置模式为Tab导航setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)。这种方法还能够设置參数ActionBar.NAVIGATION_MODE_LIST。那是用于实现下拉列表的。

    2.调用ActionBaraddTab()方法,为活动条加入多个Tab标签。并为每一个Tab标签加入事件监听。

     

    为了更好地展现Tab导航效果。我们经常将ActionBarFragment结合使用。

    Fragment能够在一个Activity中创建多个页面。详细使用方法后面再介绍。

     

    (7).除了Tab导航外。我们还能够用ActionBar实现下拉式导航。详细过程例如以下:

    1.ActionBar设模式为下拉列表setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)

    2.调用setListNavigationCallbacks(SpinnerAdapter adapter,ActionBar.OnNavigationListener callback)方法,为下拉列表加入多个列表项和列表项的事件监听器。


  • 相关阅读:
    HTTP, W3SVC, WAS 和 W3WP
    SQL Server 阻塞分析
    译文: async/await SynchronizationContext 上下文问题
    译文:TransactionScope 与 Async/Await
    ASP.NET MVC 后台接收集合参数和 jquery ajax 传值
    EntityFramework 异常 -- An entity object cannot be referenced by multiple instances of IEntityChangeTracker
    【理财学习日记】(一)人生穷富的关键
    【理财学习日记】下决心去学习理财,去支配生活
    web.config文件中自定义配置节点
    Mysql表的碎片整理和空间回收
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/7225459.html
Copyright © 2011-2022 走看看