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
Antwort
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];
}
}
Verwenden Sie ** 'uiautomatorviewer' ** und finden Sie heraus. – CommonsWare
Danke, dieses Tool hat seinen Job gemacht. –
@AlockLeo, wenn meine Antwort hilft, denken Sie daran zu akzeptieren. –