ActionBar总结

本文深入探讨了Android中ActionBar的使用方法,包括如何开启、配置导航模式、结合Fragment实现基于Tab的导航,以及下拉式导航的实现。通过实例代码展示了如何在Activity中集成ActionBar和Fragment,实现丰富的导航体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自Android3.0开始出现,位于屏幕顶部,可以显示应用图标和Activity标题,而且还可以设置限时活动项(Action Item)。

一、主要用途:

  • 显示菜单项(在Menu文件中布局+OnCreateOptionsMenu)
  • 将程序图标作为返回Home主页面的导航操作
  • 基于Tab的导航,切换Fragment
    • ActionBar有四种导航方式:Tab、Tab+Swipe、DropDown(下拉)、Swipe Views+Title Strip
  • 提供交互式ActionView


二、开启方式:

  • 主题设置为Holo
  • Activity不要继承ActionBarActivity
  • 在代码中可控制ActionBar的开启/关闭:show(),hide()
  • 注意:要添加事件监听,最好让activity实现ActionBar.TabListener、ActionBar.OnNavigationListener等接口。


三、基于Tab导航(结合Fragment)

步骤:

  1. setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)
  2. 调用addTab(actionbar.newTab().setText("xxx").setTabListener(this))方法添加TAB标签并且添加事件监听器。

Fragment使用:相当于Activity片段,通常多个fragment与一个Activity结合,用于实现同一个Activity创建多个页面。
实现Fragmen通常需要实现其onCreateView函数。
更多关于Fragment的实现参看后续笔记。

例:
ActionBar声明:

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ActionBar actionBar = getActionBar();
// 设置ActionBar导航方式:Tab导航
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// 添加三个Tab并添加事件监听
actionBar.addTab(actionBar.newTab().setText("第一页")
.setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("第二页")
.setTabListener(this));
actionBar.addTab(actionBar.newTab().setText("第三页")
.setTabListener(this));
}

Fragment声明:

public class DummyFragment extends Fragment
{
public static final String ARG_SECTION_NUMBER = "section_number";
// 该方法的返回值就是该Fragment显示的View组件
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER_HORIZONTAL);
// 获取创建该Fragment时传入的参数Bundle
Bundle args = getArguments();
// 设置TextView显示的文本
textView.setText(args.getInt(ARG_SECTION_NUMBER) + "");
textView.setTextSize(30);
// 返回该TextView
return textView;
}
}

Fragment使用:

public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction)
{
// 创建一个新的Fragment对象
Fragment fragment = new DummyFragment();
// 创建一个Bundle对象,用于向Fragment传入参数
Bundle args = new Bundle();
args.putInt(DummyFragment.ARG_SECTION_NUMBER,
tab.getPosition() + 1);
// 向fragment传入参数
fragment.setArguments(args);
// 获取FragmentTransaction对象
FragmentTransaction ft = getFragmentManager()
.beginTransaction();
// 使用fragment代替该Activity中的container组件
ft.replace(R.id.container, fragment);
// 提交事务
ft.commit();
}

具体实现参考ActionBar_TabNav。

四、下拉式导航

步骤:

  1. 设置导航方式为下拉式:actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)
  2. 添加列表项并设置事件监听:setListNavigationCallbacks(Spinner adapter,ActionBar.OnNavigationListener callBack)()
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final ActionBar actionBar = getActionBar();
// 设置ActionBar是否显示标题
actionBar.setDisplayShowTitleEnabled(true);
// 设置导航模式,使用List导航
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
// 为actionBar安装ArrayAdapter
actionBar.setListNavigationCallbacks(
new ArrayAdapter<String>(ActionBar_DropDownNav.this,
android.R.layout.simple_list_item_1,
android.R.id.text1, new String[]
{"第一页","第二页","第三页" }), this);
}

设置与使用Fragment方式与上面方法类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值