Android巧用ActionBar实现tab导航效果
本文实例为大家分享了actionbar实现tab导航效果的具体代码,供大家参考,具体内容如下
先来说一说基础知识:
一、基本使用方法
1.获取actionbar
获取actionbar很简单,在activity中,ationbar=this.getactionbar();
2.显示/隐藏
设置actionbar的显示/隐藏,可以使用show()和hide()方法。
3.设置menuitem
通过设置menuitem,可以使menuitem成为actionbar上的item。
setshowasaction(int actionenum),这个actionenum支持的参数如下:
show_as_action_always: 总是将该menuitem显示在actionbar上
show_as_action_collapse_action_view:将该actionview折叠成普通菜单项
show_as_action_if_room:当actionbar位置足够时才显示在actionbar上。
show_as_action_never:不将该menuitem显示在actionbar上。
show_as_action_with_text:把menuitem显示在actionbar上,并且显示该菜单项的文本。
也可以在xml属性,定义item的属性 android:showasaction来设置。
4.启用程序图标导航
setdisplayhomeasupenabled(boolean showhomeasup):设置是否应该将应用程序图标转变成可点击的图标,并且在图标上添加一个向左的箭头。
setdisplayoptions(int options):控制actionbar的显示选项。opitions选项为:
display_home_as_up
display_show_custom
display_show_home
display_show_title
display_use_logo
navigation_mode_list
navigation_mode_standard
navigation_mode_tabs
setdislayshowhomeenabled(boolean showhome):设置是否显示应用程序的图标。
sethomebuttonenabled(boolean eabled): 设置是否将应用程序图标转变成可点击的按钮。
5.actionbar中添加view
定义action item时,使用android:actionviewclass属性指定action view的实现类。
定义action item时,使用android:actionlayout属性指定action view对应的视图资源。
二、android巧用actionbar实现tab导航效果
利用actionbar同样也可以轻松的实现tab导航的效果,配合使用fragment实现切换不同view的功能。
若想使用这个功能,需要
1)设置actionbar.setnavigationmode(actionbar.navigation_mode_tabs),使actionbar使用tab导航功能。
2)调用actionbar的addtab()方法,添加多个tab标签,并为每个tab标签添加时间监听器。
myfragment.java
package com.app.main; import android.annotation.suppresslint; import android.app.fragment; import android.content.context; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.view.viewgroup.layoutparams; import android.widget.textview; @suppresslint("newapi") public class myfragment extends fragment { @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { context context = this.getactivity(); textview tv = new textview(context); bundle arc = this.getarguments(); int tabs=arc.getint("key"); tv.setlayoutparams(new layoutparams(layoutparams.fill_parent, layoutparams.wrap_content)); tv.settext("hello actionbar "+tabs); return tv; } }
main.xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".main" > <linearlayout android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" /> </relativelayout>
main.java
package com.app.main; import android.app.actionbar; import android.app.actionbar.tab; import android.app.activity; import android.app.fragmenttransaction; import android.os.bundle; public class main extends activity implements actionbar.tablistener { actionbar actionbar = null; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); actionbar = this.getactionbar(); actionbar.setnavigationmode(actionbar.navigation_mode_tabs); actionbar.addtab(actionbar.newtab().settext("tab1") .settablistener(this)); actionbar.addtab(actionbar.newtab().settext("tab2") .settablistener(this)); actionbar.addtab(actionbar.newtab().settext("tab3") .settablistener(this)); } @override public void ontabreselected(tab tab, fragmenttransaction ft) { } @override public void ontabselected(tab tab, fragmenttransaction ft) { myfragment frag = new myfragment(); int index = tab.getposition() + 1; bundle bundle = new bundle(); bundle.putint("key", index); frag.setarguments(bundle); fragmenttransaction action = main.this.getfragmentmanager() .begintransaction(); action.replace(r.id.container, frag); action.commit(); } @override public void ontabunselected(tab tab, fragmenttransaction ft) { } }
实现效果:
以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持。
上一篇: python-sqlalchemy
推荐阅读
-
Android巧用ActionBar实现tab导航效果
-
Android巧用ActionBar实现下拉式导航
-
Android 利用ViewPager+GridView实现首页导航栏布局分页效果
-
Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果
-
Android仿今日头条APP实现下拉导航选择菜单效果
-
Android实现顶部导航菜单左右滑动效果
-
Android巧用ActionBar实现下拉式导航
-
Android巧用ActionBar实现tab导航效果
-
Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果
-
Android 抽屉效果的导航菜单实现代码实例