当前位置:操作系统 > 安卓/Android >>

Android之ActionBar学习

  关于那个问题:是关于如何生成如下图所示之ActionBar效果:

               

        其实就在官网上就有答案,自己疏忽再加上资料繁多。寻了许久,经过指点。终于找到:

To enable split action bar, simply add uiOptions="splitActionBarWhenNarrow" to your <activity> or <application> manifest element.(http://developer.android.com/guide/topics/ui/actionbar.html)Using split action bar 标题下。

如果你想拥有上图的那种效果,Fragment(关于Fragment的内容,见上篇)在menuItem的下面显示,在manifest.xml文件里在<activity>或者<application>里加上uiOptions="splitActionBarWhenNarrow" 即可。

         注:本人在4.0版本平板上不能达到此效果,在4.0手机上可以实现。在平板上,效果类似如下:

        ,如果fragment增多,不会分裂出现上图效果,而使用下拉列表来显示Fragment。

 

       下面开始正题。

简介
        ActionBar是一个显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。
       我们可以选择可见的操作菜单可见项,不可见项会以下拉列表的形式呈现出来。(见上图相机图标右侧,点击出现下拉列 表,显示没有直接显示出来的操作菜单可见项)
       ActionBar为Fragment之间提供标签导航

 

添加ActionBar
     不需要导入ActionBar,因为在android3.0或者以上版本中,ActionBar已经默认的包含在Activity中
     在Android3.0的默认主题“holographic”中,已经创造了ActionBar
     当android:minSdkVersion 或者 android:targetSdkVersion 属性被设置成11或者更高时,应用会被认为是Android3.0版本(默认含有ActionBar)
去除ActionBar 
     我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。                                                                                        <activity android:theme="@android:style/Theme.Holo.NoActionBar">
     我们也可以通过在代码中调用show()或者hide()方法来相应的显示或者隐藏ActionBar
添加Action Item
               每一个操作菜单的菜单项都可以成为ActionBar中的一个Action Item
       参考代码如下:

      ActionBarDemoActivity.java:

[java] 
public class ActionBarDemoActivity extends Activity 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        Button showBt = (Button) findViewById(R.id.showBt); 
        showBt.setOnClickListener(new OnClickListener() 
        { 
            public void onClick(View view) 
            { 
                ActionBar actionBar = getActionBar(); 
                actionBar.show(); 
            } 
        }); 
 
    } 
 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
        super.onCreateOptionsMenu(menu); 
        MenuItem add = menu.add(0, 1, 0, "Save"); 
        MenuItem open = menu.add(0, 2, 1, "Open"); 
        MenuItem close = menu.add(0, 3, 2, "Close"); 
        add.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
        open.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
        close.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
        return true; 
    } 


        main.xml


[html]
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" > 
 
    <Button 
        android:id="@+id/hideBt" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Hide The Action Bar" > 
    </Button> 
 
    <Button 
        android:id="@+id/showBt" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Show The Action Bar" > 
    </Button> 
 
</LinearLayout> 

      效果图如下:


 

添加活动项(Action Item)
        当使用xml文件创建菜单(menu)时,可以标记这些菜单项作为想要实现的Action Item
代码如下:
ActionBarXMLActivity:
     
[java] 
public class ActionBarXMLActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentVie

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,