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模拟器效果图
相关推荐
在Android应用开发中,`ActionBar`是...总的来说,`ActionBar`的选项卡和`Fragment`是Android应用中构建多视图、多层级导航的强大工具。通过合理利用它们,开发者可以创建出具有清晰导航结构和高效用户体验的应用程序。
`ActionBarTabs`是`ActionBar`中的一个组件,用于展示多个选项卡,每个选项卡可以关联不同的内容或视图。 接着,`ViewPager`是Android支持库中的一个组件,它的主要作用是实现页面间的左右滑动切换。`ViewPager`...
`ViewPager`负责页面的滑动切换,而`TabLayout`则用来展示选项卡并与其同步。 在上边选项卡的设计中,选项卡通常位于屏幕顶部,与`Toolbar`或`ActionBar`结合使用。我们可以利用`TabLayout`的`addTab()`方法添加...
每个选项卡都可以关联到一个`ViewPager`的页面,这样用户只需点击选项卡或滑动屏幕,就可以在不同页面间切换。`TabLayout`提供了丰富的自定义选项,包括文字、图标、指示器样式等,以适应各种设计需求。 `ViewPager...
2. Tab选项卡通常用于实现多页面切换,早期常使用TabHost和TabWidget组件,但现在更推荐使用ActionBar或底部导航栏(BottomNavigationView)配合ViewPager实现。这里我们主要讨论使用TabLayout和ViewPager的实现方式...
它可以提供下拉菜单、切换视图、滑动选项卡等功能,是Android设计指南推荐的界面组成部分。 【压缩包子文件的文件名称列表】: 1. **WeChatSample**:这个可能是一个模仿微信应用风格的`ActionBar`实现示例,它展示...
通过这个“Toolbar_Dj”项目,我们可以学习到如何在Android应用中使用`Toolbar`替代传统的ActionBar,并结合`TabLayout`和`ViewPager`实现滑动选项卡。同时,项目还强调了Gradle依赖管理和颜色资源的使用。在实际...
通常,我们会使用ActionBar或者Toolbar来创建选项卡,并结合ViewPager来实现滑动切换。ViewPager是一个可以展示多个页面并支持左右滑动的控件,而FragmentTab则将这些页面与Fragment关联起来。每个Tab对应一个...
3. 导航模式:可以包含选项卡、滑动菜单或下拉列表,帮助用户在应用的不同部分之间切换。 4. 操作按钮:也称为菜单项,提供常用的操作选项,如搜索、分享或设置等。在Android 3.0及更高版本中,这些按钮通常显示在...
在Android应用开发中,ActionBar、...这三者共同工作,可以实现丰富的导航和交互效果,如滑动菜单、选项卡切换等,极大地提高了用户体验。在实践中不断探索和优化,你将能够构建出更加灵活和强大的Android应用。
ActionBar提供了丰富的功能,如显示应用图标、标题、子标题、操作按钮、下拉列表等,还可以通过滑动来切换不同的选项卡。 要修改ActionBar的样式,我们需要创建自定义的主题。在Android项目的res/values目录下,...
- 可以在`TabLayout.OnTabSelectedListener`中监听选项卡的选中和未选中状态,更新`ActionBar`的图标或者标题来提供视觉反馈。 5. **结合Tab Menu和Customize ActionBar** - 为了使`ActionBar`的菜单项与`Tab ...
在Android开发中,创建用户友好的界面是至关重要的,尤其是对于多页面的App,Tab选项卡设计能够提供清晰的导航。本示例源码“原生安卓和jquery.mobile组合做的tab选项卡.zip”展示了如何将Android原生开发与jQuery ...
横向菜单通常是展示多个可滑动选项卡的界面元素,适用于展示多个相互关联的内容板块。在Android中,可以使用`ViewPager`配合`TabLayout`来实现这一效果。 1. `ViewPager`:负责展示各个页面,用户可以左右滑动切换...
不过,Android开发中还有更高级的选项卡实现方式,比如使用ActionBar或Toolbar上的TabLayout,以及搭配ViewPager进行更复杂的页面滑动效果。这些方法通常适用于Android 3.0及以上版本,并且提供了更现代的用户体验。...
在实际应用中,通常会结合ActionBar或Toolbar的TabLayout来实现更美观的选项卡切换效果。TabLayout提供了与ViewPager集成的便捷方式,可以自动管理选项卡的显示和切换。然而,本示例中使用的是较旧的PagerTabStrip,...
在导航菜单中,它通常用于创建横向滑动的选项卡布局,用户可以左右滑动查看不同内容。 8. **TabDemo**:Tab布局是一种常见的导航方式,尤其适用于多视图切换场景。Android提供了TabHost和ViewPager等组件来实现Tab...
总的来说,`SlidingTabLayout`结合`ViewPager`和`Toolbar`,为Android应用提供了灵活的滑动选项卡导航,而自定义选项卡则允许开发者根据项目需求实现独特的视觉效果。在实际开发中,开发者可以根据`SlidingTabLayout...