Android-将切换tabs的指示器合并到ActionBar上

最近比较忙,好久没更新过博客。国庆第一天没回家,闲下来可以把之前就想贴上来的东西写一下。

  使用过Smooth和Fuubo这两个优秀的第三方微博客户端的同学应该见过他们的主页UI,如下图:

  

  

  他们把切换tabs的指示器放在了ActionBar上,这样子就把专门放tabs的那一行空间给节省下来了。我们可有更多的视觉空间来浏览主要的微博内容。

  ActionBar上的Tab切换器是一个自定义的组件TabBarView。

  声明一个TabBarView和设置一个ViewPaper,在onCreateOptionsMenu(Menu menu)方法中添加TabBarView才能在ActionBar的右边出现Tabs切换指示器

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        View v = (View) menu.findItem(R.id.action_settings).getActionView();
        tabBarView = (TabBarView) v.findViewById(R.id.tab_bar);
        tabBarView.setStripHeight(10);
        mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());

        // Set up the ViewPager with the sections adapter.
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        tabBarView.setViewPager(mViewPager);
        return true;
    }

  menu.xml中添加TabBarView的组件: 

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.demo.MainActivity" >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:actionLayout="@layout/custom_ab"/>

</menu>

  效果:

  

  demo下载地址:https://github.com/Syun0929/TabBarView

  

时间: 2024-10-05 16:24:16

Android-将切换tabs的指示器合并到ActionBar上的相关文章

Android ActionBar详解(三):ActionBar实现切换Tabs标签

实现切换Tabs标签; Activity代码: public class ActionBarTabs extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.action_bar_tabs); } public void onAddTab(View v) { final 

android 语言切换过程分析 (zhuan)

最近在看一个bug,系统切换语言后,本来退到后台的音乐,会在通知栏上显示通知.为了解决这个bug,我学习了下android的语言切换流程,也参考了大量其他人的资料.(主要参考了http://blog.csdn.net/wqhjfree/article/details/8244520)在这里我将自己的探索记录下来,作为自己的学习记录,也希望能对有同样需要的人有个帮助.刚学android不久,如果中间有什么问题不对的请多多谅解,并指出错误,多交流,共同进步下. 1.从setting入手,我们可以知道

cocos2dx shader实现灰度图android后台切换回来导致图像偏移的问题

转自:http://www.tuicool.com/articles/U3URRrI 项目中经常会遇到将一张图像处理成灰色的需求,为了节省资源,一般不会让美术再做一套同样的灰度图,通常会通过代码处理让图片变灰.网上也有很多用shader处理图片变灰的方法,这些方法确实也实现了让图片变灰的需求,但是android平台从后台切换回来的时候,shader被释放,导致图片位置错乱.关键在于从android后台切换回来的时候需要重新加载shader.我们看一下cocos2dx原生的shader处理方式,我

android Activity切换动画效果

为Activity设置左右进出的效果,可以通过在Mainfest.xml文件中设置主题的方式来实现.还可以使用java代码. 一.设置样式 先看看实现动画的样式: <style name="AnimationRToL" mce_bogus="1" parent="@<span style="color:#ff0000;">android:style/Animation.Activity</span>&quo

Android Activity切换动画overridePendingTransition

Activity在切换或者是退出的时候能够使用渐入,滑动,缩放等动态效果.使用的就是方法overridePendingTransition,能够直在Activity其中直接调用. overridePendingTransition(R.anim.zoomin, R.anim.zoomout) 第一个參数是事实上动画,第二个參数是结束动画.此方法在startActivity()或者是finish()后调用,在切换或是退出时就会调用此动画. Intent phoneIntent=new Intent

android 语言切换过程分析

android 语言切换过程分析 2014-02-27 18:13 1207人阅读 评论(0) 收藏 举报 语言切换android语言切换android改变语言 最近在看一个bug,系统切换语言后,本来退到后台的音乐,会在通知栏上显示通知.为了解决这个bug,我学习了下android的语言切换流程,也参考了大量其他人的资料.(主要参考了http://blog.csdn.net/wqhjfree/article/details/8244520)在这里我将自己的探索记录下来,作为自己的学习记录,也希

Android边沿切换效果(支持无缝过渡)

Android边沿切换效果(无缝过渡),StackPagerLayout支持像翻书一样的边沿滑动,继承于AdapterView,实现了控件的复用功能 效果 GItHub地址: https://github.com/FeiMo1988/StackPagerLayout StackPagerLayout.java: reloadAndSmoothMoveNext()//重新load下一个view,并平滑过度到该view movePre()//前移 moveNext()//后移 smoothMoveT

android 动画切换效果

一:整个app都采用淡入淡出效果 1:在anim文件夹下定义动画文件 accelerate_interpolator.xml <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?> <accelerateInterpolator /></span> decelerate_interpolator.xml <spa

[FMX]将 Android 程序切换到后台及从后台切换到前台实现

有时候,我们需要将自己的Android程序切换到后台运行,在必要时,将其切换到前台运行.下面提供了一种实现方式,首先需要引用三个单元: 1 uses Androidapi.JNI.App,Androidapi.JNI.GraphicsContentViewText,Androidapi.Helpers; 将应用程序切换到后台,这里提供了两种方法,一种是将应用切换回桌面来实现,执行后相当于按下 Home 键: 1 2 3 4 5 6 7 8 9 10 procedure SendAppToBack