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

发布于 2014-09-09 05:06:24
在使用uiautomatorviewer,之后,可以看到基本组件是左侧部分的HorizontalScrollView内部的ImageButtons,以及右侧部分具有ImageButton的LinearLayout。然而,这并没有详细说明如何获得滑动动画,也没有详细说明如何很好地分隔两个功能部分。
我设法用this fantastic library重新创建了它,并对视图进行了一些调整。基本上,您将Pager Sliding Tab view (PSTS)作为自定义视图提供给actionbar。
//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是这样的
<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的方式。这些库的示例很好地说明了如何做到这一点,但这里是我的示例。
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];
}
}https://stackoverflow.com/questions/25715160
复制相似问题