ActionBar 介绍
Android3.0中ActionBar的新特性
1. ActionBar(活动栏)替代了显示在屏幕顶端的标题栏。主要负责显示菜单,widget,导航等功能,主要包括:
@ 显示选项菜单中的菜单项到活动栏;
@ 添加可交互的视图到活动栏作为活动视图;
@ 使用应用的图标作为活动项,代表返回home或者向上等重要操作;
@ 提供标签导航,方便不同的Fragment之间切换;
@ 提供下拉导航功能。
ActionBar 还可以和fragment的视图互动
以本文为例子
/**
* @author quiet
* ActionBar 的测试
*/
public class ActionBarTestActivity extends Activity {
/** Called when the activity is first created. */
Button button1,button2;
ActionBar actionBar;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
actionBar=getActionBar();
// 生成一个SpinnerAdapter
SpinnerAdapter adapter = ArrayAdapter.createFromResource(this, R.array.student, android.R.layout.simple_spinner_dropdown_item);
// 将ActionBar的操作模型设置为NAVIGATION_MODE_LIST
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
// 为ActionBar设置下拉菜单和监听器
actionBar.setListNavigationCallbacks(adapter, new DropDownListenser());
class DropDownListenser implements OnNavigationListener
{
// 得到和SpinnerAdapter里一致的字符数组
String[] listNames = getResources().getStringArray(R.array.student);
/* 当选择下拉菜单项的时候,将Activity中的内容置换为对应的Fragment */
public boolean onNavigationItemSelected(int itemPosition, long itemId)
{
// 生成自定的Fragment
Ftest student = new Ftest();
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
// 将Activity中的内容替换成对应选择的Fragment
transaction.replace(android.R.id.content, student, listNames[itemPosition]);
transaction.commit();
return true;
}
String XML代码
Hello World, ActionBarTestActivity!
ActionBarTest
ActionBar下拉菜单
- 邓可
- 蒋小龙
- 肖小平
- 样远
fragment视图代码
public class Ftest extends Fragment
{
// Fragment对应的标签,当Fragment依附于Activity时得到
private String tag;
@Override
public void onAttach(Activity activity)
{
super.onAttach(activity);
tag = getTag();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// View view = (View) inflater.inflate(R.layout.ftest, container, false);
// TextView textView=(TextView) view.findViewById(R.id.topView);
// textView.setText(tag);
TextView textView = new TextView(getActivity());
textView.setText(tag);
return textView;
}
}
传自: http://www.apkbus.com/forum.php?mod=viewthread&tid=94306