2014-09-07 17 views
6

Was ist das Element, das für Swarm Android App Actionbar verwendet wird? Ich denke, es ist weder die native Android Actionbar noch Actionbarsherlock.Swarm App Android - Actionbar

screenshot of swarms actionbar

+2

Verwenden Sie ** 'uiautomatorviewer' ** und finden Sie heraus. – CommonsWare

+0

Danke, dieses Tool hat seinen Job gemacht. –

+0

@AlockLeo, wenn meine Antwort hilft, denken Sie daran zu akzeptieren. –

Antwort

5

Nach der Verwendung uiautomatorviewer kann gesehen werden, dass die Basis ImageButtons Komponenten für den linken Abschnitt innerhalb eines HorizontalScrollView waren, und ein mit einem Linearlayout Image für den rechten Teil. Allerdings wird hier nicht beschrieben, wie die Gleitanimation erreicht werden kann oder wie die beiden funktionierenden Teile gut voneinander getrennt werden können.

Ich schaffte es, es mit this fantastic library und ein wenig massieren von Ansichten neu zu erstellen. Im Grunde füttern Sie den Pager Sliding Tab Strip (PSTS) der Aktionsleiste als benutzerdefinierte Ansicht.

//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); 
} 

Mit dem action_bar_main.xml wobei dies

<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> 

Sie müssen auch ändern, wie die FragmentPagerAdapter die PSTS einrichtet. Die Bibliothekenbeispiele sind ein gutes Beispiel dafür, aber hier ist meins.

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]; 
    } 
}