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 ,