首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swarm App Android - Actionbar

Swarm App Android - Actionbar
EN

Stack Overflow用户
提问于 2014-09-08 06:00:25
回答 1查看 426关注 0票数 6

Swarm Android应用程序的actionbar使用的元素是什么?我认为它既不是原生的android actionbar,也不是actionbarsherlock。

EN

回答 1

Stack Overflow用户

发布于 2014-09-09 05:06:24

在使用uiautomatorviewer,之后,可以看到基本组件是左侧部分的HorizontalScrollView内部的ImageButtons,以及右侧部分具有ImageButton的LinearLayout。然而,这并没有详细说明如何获得滑动动画,也没有详细说明如何很好地分隔两个功能部分。

我设法用this fantastic library重新创建了它,并对视图进行了一些调整。基本上,您将Pager Sliding Tab view (PSTS)作为自定义视图提供给actionbar。

代码语言:javascript
复制
//I call this in the onCreate()of my activity
void setupActionBar() {

    ActionBar actionBar = getActionBar();

    View vwActionBar = View.inflate(this, R.layout.action_bar_main, null);
    tabs = (PagerSlidingTabStrip) vwActionBar.findViewById(R.id.tabs);
    actionBar.setCustomView(vwActionBar);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
}

action_bar_main.xml是这样的

代码语言:javascript
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="horizontal"
          android:layout_width="match_parent"
          android:layout_height="match_parent">


    <com.astuetz.PagerSlidingTabStrip
        android:id="@+id/tabs"
        android:layout_width="wrap_content"
        android:layout_height="?android:attr/actionBarSize"
        android:layout_alignParentBottom="true"
        />


</RelativeLayout>

您还必须更改FragmentPagerAdapter设置PSTS的方式。这些库的示例很好地说明了如何做到这一点,但这里是我的示例。

代码语言:javascript
复制
public class MyPagerAdapter extends FragmentPagerAdapter
    implements PagerSlidingTabStrip.IconTabProvider {

    private final int[] ICONS = {
        R.drawable.ic_home,
        R.drawable.ic_dashboard,
        R.drawable.ic_insights,
        R.drawable.ic_stream
    };

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return ICONS.length;
    }

    @Override
    public android.support.v4.app.Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override public int getPageIconResId(int i) {
        return ICONS[i];
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25715160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档