`
irtutsk
  • 浏览: 17787 次
社区版块
存档分类
最新评论

ActionBar导航(滑动选项卡)

阅读更多

ActionBar导航(滑动选项卡)

在ActionBar Tabs中加入Viewpager可以实现滑动。

首先在布局文件中添加Viewpager容器,不加载XML资源fragment就不会显示。

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/vPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    tools:context="com.example.helloworld.Activity" >

</android.support.v4.view.ViewPager>

在Activity中实例化Viewpager,添加FragmentPagerAdapter适配器,实现OnPageChangeListener接口,将fragment添加到Viewpager容器中。设置setNavigationMode为NAVIGATION_MODE_TABS并把Viewpager加载到Tab导航里。

import android.support.v7.app.ActionBarActivity;
private ActionBar actionBar;
private ViewPager mPager;
private String[] dataTag;
private ArrayList<Fragment> mFragmentsList;
private Tab tabA, tabB;
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
	actionBar = getSupportActionBar();
	//向ArrayList中添加fragment
	mFragmentsList = new ArrayList<Fragment>();
	mFragmentsList.add(new MyFragmentA());
	mFragmentsList.add(new MyFragmentB());
	//获取ViewPager
	mPager = (ViewPager) findViewById(R.id.vPager);
	//设置FragmentPagerAdapter
	mPager.setAdapter(new MyFragmentPagerAdapter(
			getSupportFragmentManager(), mFragmentsList));
	//设置OnPageChangeListener
	mPager.setOnPageChangeListener(new MyOnPageChangeListener(this));
	//设置默认fragment
	mPager.setCurrentItem(0);
	//向dataTag添加标签
	dataTag = new String[] { "页 面 一", "页 面 二" };
	//NavigationTabs配置
	actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
	tabA = actionBar.newTab().setText(dataTag[0])
			.setIcon(R.drawable.ic_launcher).setContentDescription("Tab A")
			//设置TabListener
			.setTabListener(new MyTabListener(mPager));
	actionBar.addTab(tabA);
	tabB = actionBar.newTab().setText(dataTag[1])
			.setIcon(R.drawable.ic_launcher).setContentDescription("Tab B")
			//设置TabListener
			.setTabListener(new MyTabListener(mPager));
	actionBar.addTab(tabB);
}

 

 MyTabListener.java——切换Tab时滑动fragment。

public class MyTabListener implements ActionBar.TabListener {
	private ViewPager mViewPager;

	public MyTabListener(ViewPager viewpager) {
		this.mViewPager = viewpager;
	}

	@Override
	public void onTabSelected(Tab tab, FragmentTransaction ft) {
		if (mViewPager != null) {
			mViewPager.setCurrentItem(tab.getPosition());
		}
	}

	@Override
	public void onTabUnselected(Tab tab, FragmentTransaction ft) {
	}

	@Override
	public void onTabReselected(Tab tab, FragmentTransaction ft) {
	}
}

MyFragmentPagerAdapter .java——将fragment添加到Viewpager中。

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {
	private ArrayList<Fragment> fragmentsList;

	public MyFragmentPagerAdapter(FragmentManager fm,
			ArrayList<Fragment> fragments) {
		super(fm);
		this.fragmentsList = fragments;
	}

	@Override
	public Fragment getItem(int index) {
		// TODO Auto-generated method stub
		return fragmentsList.get(index);
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return fragmentsList.size();
	}
}

 MyOnPageChangeListener.java——滑动fragment时切换Tab。

public class MyOnPageChangeListener implements OnPageChangeListener {
	private ActionBar mActionBar;

	public MyOnPageChangeListener(ActionBarActivity activity) {
		// TODO Auto-generated constructor stub
		this.mActionBar = activity.getSupportActionBar();
	}

	@Override
	public void onPageScrollStateChanged(int arg0) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onPageScrolled(int arg0, float arg1, int arg2) {
		// TODO Auto-generated method stub

	}

	@Override
	public void onPageSelected(int arg0) {
		// TODO Auto-generated method stub
		mActionBar.selectTab(mActionBar.getTabAt(arg0));
	}
}

 

Android2.3模拟器效果图

  • 大小: 96.6 KB
分享到:
评论

相关推荐

    android-tab-fragments:ActionBar 选项卡和片段

    在Android应用开发中,`ActionBar`是...总的来说,`ActionBar`的选项卡和`Fragment`是Android应用中构建多视图、多层级导航的强大工具。通过合理利用它们,开发者可以创建出具有清晰导航结构和高效用户体验的应用程序。

    android ActionBarTabs+ViewPager+Fragment 实现tab滑动翻页效果

    `ActionBarTabs`是`ActionBar`中的一个组件,用于展示多个选项卡,每个选项卡可以关联不同的内容或视图。 接着,`ViewPager`是Android支持库中的一个组件,它的主要作用是实现页面间的左右滑动切换。`ViewPager`...

    android上下选项卡框架

    `ViewPager`负责页面的滑动切换,而`TabLayout`则用来展示选项卡并与其同步。 在上边选项卡的设计中,选项卡通常位于屏幕顶部,与`Toolbar`或`ActionBar`结合使用。我们可以利用`TabLayout`的`addTab()`方法添加...

    ActionBar +viewPage页面切换

    每个选项卡都可以关联到一个`ViewPager`的页面,这样用户只需点击选项卡或滑动屏幕,就可以在不同页面间切换。`TabLayout`提供了丰富的自定义选项,包括文字、图标、指示器样式等,以适应各种设计需求。 `ViewPager...

    Fragment&Tab选项卡

    2. Tab选项卡通常用于实现多页面切换,早期常使用TabHost和TabWidget组件,但现在更推荐使用ActionBar或底部导航栏(BottomNavigationView)配合ViewPager实现。这里我们主要讨论使用TabLayout和ViewPager的实现方式...

    ActionbarDemo.rar

    它可以提供下拉菜单、切换视图、滑动选项卡等功能,是Android设计指南推荐的界面组成部分。 【压缩包子文件的文件名称列表】: 1. **WeChatSample**:这个可能是一个模仿微信应用风格的`ActionBar`实现示例,它展示...

    Toolbar_Dj:android工具栏;滑动选项卡

    通过这个“Toolbar_Dj”项目,我们可以学习到如何在Android应用中使用`Toolbar`替代传统的ActionBar,并结合`TabLayout`和`ViewPager`实现滑动选项卡。同时,项目还强调了Gradle依赖管理和颜色资源的使用。在实际...

    安卓FragmentTab选项卡相关-Fragment实现tab切换不坑自用.zip

    通常,我们会使用ActionBar或者Toolbar来创建选项卡,并结合ViewPager来实现滑动切换。ViewPager是一个可以展示多个页面并支持左右滑动的控件,而FragmentTab则将这些页面与Fragment关联起来。每个Tab对应一个...

    ActionBarDemo

    3. 导航模式:可以包含选项卡、滑动菜单或下拉列表,帮助用户在应用的不同部分之间切换。 4. 操作按钮:也称为菜单项,提供常用的操作选项,如搜索、分享或设置等。在Android 3.0及更高版本中,这些按钮通常显示在...

    安卓新手学习ActionBar+Fragment+ViewPager的套用

    在Android应用开发中,ActionBar、...这三者共同工作,可以实现丰富的导航和交互效果,如滑动菜单、选项卡切换等,极大地提高了用户体验。在实践中不断探索和优化,你将能够构建出更加灵活和强大的Android应用。

    ActionBar 样式修改

    ActionBar提供了丰富的功能,如显示应用图标、标题、子标题、操作按钮、下拉列表等,还可以通过滑动来切换不同的选项卡。 要修改ActionBar的样式,我们需要创建自定义的主题。在Android项目的res/values目录下,...

    AndroidTabMenuCustomizeActionBarItemClick:Android 选项卡菜单和自定义 ActionBar 项

    - 可以在`TabLayout.OnTabSelectedListener`中监听选项卡的选中和未选中状态,更新`ActionBar`的图标或者标题来提供视觉反馈。 5. **结合Tab Menu和Customize ActionBar** - 为了使`ActionBar`的菜单项与`Tab ...

    Android例子源码原生安卓和jquery.mobile组合做的tab选项卡.zip

    在Android开发中,创建用户友好的界面是至关重要的,尤其是对于多页面的App,Tab选项卡设计能够提供清晰的导航。本示例源码“原生安卓和jquery.mobile组合做的tab选项卡.zip”展示了如何将Android原生开发与jQuery ...

    安卓开发-高仿网易新闻抽屉效果+横向菜单+页面滑动.zip.zip

    横向菜单通常是展示多个可滑动选项卡的界面元素,适用于展示多个相互关联的内容板块。在Android中,可以使用`ViewPager`配合`TabLayout`来实现这一效果。 1. `ViewPager`:负责展示各个页面,用户可以左右滑动切换...

    简单的android选项卡Tab菜单TabHost(一)同一Activity上实现

    不过,Android开发中还有更高级的选项卡实现方式,比如使用ActionBar或Toolbar上的TabLayout,以及搭配ViewPager进行更复杂的页面滑动效果。这些方法通常适用于Android 3.0及以上版本,并且提供了更现代的用户体验。...

    Android ViewPager实现选项卡切换

    在实际应用中,通常会结合ActionBar或Toolbar的TabLayout来实现更美观的选项卡切换效果。TabLayout提供了与ViewPager集成的便捷方式,可以自动管理选项卡的显示和切换。然而,本示例中使用的是较旧的PagerTabStrip,...

    android导航菜单集合

    在导航菜单中,它通常用于创建横向滑动的选项卡布局,用户可以左右滑动查看不同内容。 8. **TabDemo**:Tab布局是一种常见的导航方式,尤其适用于多视图切换场景。Android提供了TabHost和ViewPager等组件来实现Tab...

    SlidingTabLayout:带有自定义选项卡的棒棒糖工具栏对象的基本示例

    总的来说,`SlidingTabLayout`结合`ViewPager`和`Toolbar`,为Android应用提供了灵活的滑动选项卡导航,而自定义选项卡则允许开发者根据项目需求实现独特的视觉效果。在实际开发中,开发者可以根据`SlidingTabLayout...

Global site tag (gtag.js) - Google Analytics