博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActionBar实现Tab导航
阅读量:5962 次
发布时间:2019-06-19

本文共 2357 字,大约阅读时间需要 7 分钟。

hot3.png

  利用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

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) {	}}
实现效果:

转载于:https://my.oschina.net/summerpxy/blog/174508

你可能感兴趣的文章
C# 自定义控件入门
查看>>
git改密码出现授权问题
查看>>
Hadoop IO 特性详解(2)
查看>>
ORA-02266: 表中的唯一/主键被启用的外键引用
查看>>
5(绪论).时间复杂度和空间复杂度-3
查看>>
MySQL类型转换 使用CAST将varchar转换成int类型排序
查看>>
Django的POST请求时因为开启防止csrf,报403错误,及四种解决方法
查看>>
Apache common-fileupload用户指南
查看>>
day-6 and day-7:面向对象
查看>>
COM基础
查看>>
IE维护(IEM)策略不再适用于IE10及后续IE版本
查看>>
Java7中的ForkJoin并发框架初探(下)—— ForkJoin的应用
查看>>
java中的重量级与轻量级概念
查看>>
Linux设备驱动工程师之路——硬件访问及混杂设备LED驱动
查看>>
进程和线程<一>
查看>>
远程算数程序——版本v1.0
查看>>
Mysql常见四种索引的使用
查看>>
说说Android桌面(Launcher应用)背后的故事(一)——揭开她神秘的面纱
查看>>
第一篇:zc706 开箱及开发环境搭建
查看>>
python-冒泡排序
查看>>