Android 程式开发:(九)使用活动栏 —— 9.1隐藏或显示ActionBar

来源:互联网 发布:网络舆情培训 编辑:程序博客网 时间:2024/06/05 01:11
 

除了fragments(碎片),在Android3和4中新增加的特性,还有ActionBar(活动栏)。ActionBar位于传统标题栏的位置,就在设备屏幕的顶部。ActionBar显示了应用的图标和Activity的标题。可选择地,ActionBar的右侧是那些action items(活动项目)。下图展示了build-in(内置的)Email应用,显示了应用的图标,Activity(活动)的标题,以及一些活动项目。下一节将详细地讨论action items(活动项目)。

下面的例子,将会介绍如何通过编写代码去隐藏和显示ActionBar。

1、创建一个工程,MyActionBar。

2、按F11在模拟器上面调试。此时,你就会看见ActionBar被放置在了屏幕的顶端(包含应用的图标和应用的名称“MyActionBar”)。如下图。

3、想要隐藏ActionBar,可以在AndroidManifest.xml中加入以下代码。

[html] view plaincopyprint?
  1. <?xmlversion="1.0"encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     package="net.learn2develop.MyActionBar" 
  4.     android:versionCode="1" 
  5.     android:versionName="1.0"> 
  6.  
  7.     <uses-sdkandroid:minSdkVersion="13"/> 
  8.  
  9.     <application 
  10.         android:icon="@drawable/ic_launcher" 
  11.         android:label="@string/app_name"> 
  12.         <activity 
  13.             android:label="@string/app_name" 
  14.             android:name=".MyActionBarActivity" 
  15.             <!-- 注意这行代码 --> 
  16.             android:theme="@android:style/Theme.Holo.NoActionBar"> 
  17.             <intent-filter> 
  18.                 <actionandroid:name="android.intent.action.MAIN"/> 
  19.  
  20.                 <categoryandroid:name="android.intent.category.LAUNCHER"/> 
  21.             </intent-filter> 
  22.         </activity> 
  23.     </application> 
  24.  
  25. </manifest> 
4、按F11重新调试,就会看见,这次ActionBar就不会显示了。

5、也可以通过编写代码的方式去移除ActionBar,但这要使用ActionBar类。如果想这么做的话,首先就得把AndroidManifest.xml中的android:theme属性去掉,否则,将会引起一个Exception(异常)。

6、在MyActionBar.java文件中加入如下代码。

[java] view plaincopyprint?
  1. public class MyActionBarActivityextends Activity { 
  2.     /** Called when the activity is first created. */ 
  3.     @Override 
  4.     public void onCreate(Bundle savedInstanceState) { 
  5.         super.onCreate(savedInstanceState); 
  6.         setContentView(R.layout.main); 
  7.         // 获取ActionBar实例 
  8.         ActionBar actionBar = getActionBar(); 
  9.         // 隐藏 
  10.         actionBar.hide(); 
  11.         // 显示 
  12.         //actionBar.show(); 
  13.     } 
  14.      
7、按F11重新调试,发现ActionBa依然是隐藏的,但是此时AndroidManifest.xml中的android:theme属性已经被删除了。

注意:

如果在AndroidManifest.xml中定义了主题,把ActionBar给隐藏了。在程序运行时,如果执行getActionBar()方法,就会返回一个null。所以,一般情况下,总是通过编写代码的方式去控制ActionBar的显示和隐藏。

原创粉丝点击