文档章节

Android ActionBar总结

亓斌哥哥
 亓斌哥哥
发布于 2014/04/16 20:19
字数 536
阅读 280
收藏 6

1、设置显示/隐藏ActionBar

菜单xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item

        android:id="@+id/menu1"

        android:orderInCategory="1"

        android:showAsAction="ifRoom|withText"    // ifRoom:如果ActionBar有空间则显示, withText尽可能的显示文本

        android:title="菜单1"/>

    

   

<item

        android:id="@+id/menu2"

        android:orderInCategory="2"

        android:showAsAction="collapseActionView|withText"  // 如果想让这个选项放在麦库截图20141816183448703.jpg 中,可以使用collapseActionView

        android:title="菜单2" />

    

    <item

        android:id="@+id/menu3"

        android:orderInCategory="2"

        android:showAsAction="ifRoom|withText"

        android:title="菜单3">

    <menu>

            <item

                android:id="@+id/m1"

                android:orderInCategory="1"

                android:title="子项1"/>

            <item

                android:id="@+id/m2"

                android:orderInCategory="2"

                android:title="子项2"/>

        </menu>

    </item>

</menu>


显示/隐藏ActionBar

bar = super.getActionBar();

bar.show();

bar.hide();


处理菜单的点击事件

@Override

public boolean onOptionsItemSelected(MenuItem item) {

switch (item.getItemId()) {

case R.id.m1:

Toast.makeText(this, "选择了1", Toast.LENGTH_SHORT).show();

break;


case R.id.m2:

Toast.makeText(this, "选择了2", Toast.LENGTH_SHORT).show();

break;

}

return super.onOptionsItemSelected(item);

}


效果:

麦库截图20141816182411947.jpg 

麦库截图20141816182424011.jpg 




2、ActionBar + 系统View

<item

        android:id="@+id/main3"

        android:orderInCategory="3"

        android:showAsAction="always"  // 始终显示。优先级最高

        android:actionViewClass="android.widget.SearchView" />

android:actionViewClass="android.widget.SearchView"会显示android系统自带的Search组件

效果:

麦库截图20141816185251672.jpg 

麦库截图20141816185310048.jpg 


3、ActionBar + Tab

Fragment java文件

public class Frag extends Fragment {

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

View view = inflater.inflate(R.layout.frag, null);

TextView show = (TextView) view.findViewById(R.id.show);

String text = super.getArguments().getString("key");

show.setText(text);

Toast.makeText(super.getActivity(), text, Toast.LENGTH_SHORT).show();


return view;

}

}


mainActivity文件


public class MainActivity extends Activity {

private ActionBar bar;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


bar = super.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

                bar.setHomeButtonEnabled(true);


ActionBar.Tab tab1 = bar.newTab().setText("未接电话").setTag("one")

                                .setTabListener(new Listener());

ActionBar.Tab tab2 = bar.newTab().setText("已接电话").setTag("two")

.setTabListener(new Listener());

ActionBar.Tab tab3 = bar.newTab().setText("所有电话").setTag("three")

.setTabListener(new Listener());


bar.addTab(tab1);

bar.addTab(tab2);

bar.addTab(tab3);

}


private class Listener implements TabListener {

@Override

public void onTabSelected(Tab tab, FragmentTransaction ft) {

Bundle bundle = new Bundle();

if ("one".equals(tab.getTag())) {

bundle.putString("key", "未接电话     18254588552   10:20:00");

}else if("two".equals(tab.getTag())) {

bundle.putString("key", "已接电话     18254588552   10:20:00");

}else if("three".equals(tab.getTag())) {

bundle.putString("key", "所有电话     18254588552   10:20:00");

}

Fragment frag = new Frag();

frag.setArguments(bundle);

ft.replace(R.id.content, frag); // 不需要commit, 系统会自动commit

}


@Override

public void onTabUnselected(Tab tab, FragmentTransaction ft) {

}


@Override

public void onTabReselected(Tab tab, FragmentTransaction ft) {

}


}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.main, menu);

return true;

}


@Override

public boolean onOptionsItemSelected(MenuItem item) {

if (item.getItemId() != R.id.main3) {

Toast.makeText(this, "选择了" + item.getTitle(), Toast.LENGTH_SHORT)

.show();

}

return super.onOptionsItemSelected(item);

}

}



4、ActionBar List显示

bar = super.getActionBar();

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

bar.setHomeButtonEnabled(true);

bar.setIcon(R.drawable.ic);

bar.setListNavigationCallbacks(new ArrayAdapter<String>(this,

android.R.layout.simple_list_item_1, titles),

new OnNavigationListener() {

@Override

public boolean onNavigationItemSelected(int itemPosition,

long itemId) {

Toast.makeText(MainActivity.this, titles[itemPosition],

Toast.LENGTH_SHORT).show();

return false;

}

});


效果:

 

© 著作权归作者所有

共有 人打赏支持
亓斌哥哥

亓斌哥哥

粉丝 28
博文 34
码字总数 12346
作品 13
莱芜
程序员
actionbarsherlock使用总结

为了在2.*版本使用actionbar,在网上下载了开源的actionbarsherlock,花了一下午才搞定。。。。 由于是新人,遇到了不少问题,现在总结一下。 1、不用说,下载 http://actionbarsherlock.com...

尼莫
2012/10/19
0
1
Android之ActionBar学习

关于那个问题:是关于如何生成如下图所示之ActionBar效果: 其实就在官网上就有答案,自己疏忽再加上资料繁多。寻了许久,经过指点。终于找到: To enable split action bar, simply add uiO...

尼莫
2012/10/12
0
1
Android ActionBar详解

关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar...

恰同学少年
2015/08/03
0
0
浅谈Activity,Fragment模块化封装

欢迎大家访问我的博客:博客地址 概述 继承关系 这里的继承关系大家肯定十分熟悉了,这里贴出的是v4包中fragment,可以看出fragment是直接继承于object的,与四大组件没有任何关系。 两者之间...

stone_zhu
06/12
0
0
Android ActionBar

在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展...

Jerikc
2012/10/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 Windows 中以服务方式自动重启的原因

针对长时间使用的 Confluence,我们推荐你配置 Confluence 自动随操作系统重启而启动。针对一些 Windows 的服务器,这意味着需要让 Confluence 以服务的方式运行。 有下面 2 种方式来以服务的...

honeymose
42分钟前
2
0
day93-20180920-英语流利阅读-待学习

时尚之觞:外表光鲜靓丽,其实穷得要命 Lala 2018-09-20 1.今日导读 讲到时尚界,我们脑海里浮现的可能都是模特和设计师光鲜靓丽、从容潇洒的模样。可是,最近在法国出版的一本书却颠覆了我们...

飞鱼说编程
今天
3
0
maven的pom.xml用解决版本问题

maven管理库依赖,有个好处就是连同库的依赖的全部jar文件一起下载,免去手工添加的麻烦,但同时也带来了同一个jar会被下载了不同版本的问题,好在pom的配置里面允许用<exclusion>来排除一些...

JAVA码猿
今天
1
0
20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
2
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
382
19

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部