SwipeyTabs – cómo crear pestañas de Swipey usando la biblioteca de ActionBarSherlock?
He creado pestañas swipey usando ViewPagerExtensions, pero esta vez estoy usando sólo una biblioteca ActionBarSherlock en mi aplicación y no sé cómo crear pestañas swipey como google play store. Si me puede ayudar a hacerlo, estaría muy agradecido con usted.
Este es el método onCreate de mi clase de actividad
- Barra de Acción Sherlock + ListFragments + Fragments
- Obtención de la posición de fragmento actual utilizando el buscapersonas de estado de actionbarsherlock
- Consulte ActionBarSherlock desde una biblioteca
- ActionBarSherlock: getSupportMenuInflator () no está definido
- ActionBarSherlock Cambio de color del botón de retroceso?
@Override protected void onCreate(Bundle savedInstanceState) { setTheme(SampleList.THEME); //Used for theme switching in samples super.onCreate(savedInstanceState); setContentView(R.layout.fragment_tabs); mTabHost = (TabHost)findViewById(android.R.id.tabhost); mTabHost.setup(); mTabManager = new TabManager(this, mTabHost, R.id.realtabcontent); mTabManager.addTab(mTabHost.newTabSpec("simple").setIndicator("Groups"),FragmentStackSupport.CountingFragment.class, null); mTabManager.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),LoaderCursorSupport.CursorLoaderListFragment.class, null); mTabManager.addTab(mTabHost.newTabSpec("custom").setIndicator("Logs"),LoaderCustomSupport.AppListFragment.class, null); mTabManager.addTab(mTabHost.newTabSpec("throttle").setIndicator("Gallery"),LoaderThrottleSupport.ThrottledLoaderListFragment.class, null); if (savedInstanceState != null) { mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab")); } }
En la primera imagen Top New Paid es el título de la pantalla actual y otros dos están mostrando el mosaico de pantalla anterior o siguiente. ¿Cómo puedo mostrar el título de pantalla anterior y siguiente en la esquina con algún efecto de desvanecimiento como él.
- Error de asistencia de contenido de Eclipse
- Cómo cambiar el color de TabIndicater en PagerTabStrip
- Cómo importar ejemplos de Actionbarsherlock en eclips y usarlos
- ¿Puedo configurar el icono de inicio de mi barra de acciones usando styles.xml?
- Barra de acción Android sherlok no muestra divisor
- Cambio de homeAsUpIndicator icono en ActionbarSherlock no tiene efecto en ICS?
- Cómo elegir la barra de acción de Sherlock sobre las bibliotecas de soporte
- ¿Debería usar ActionBarSherlock para aplicaciones Android 4.0+?
Necesitas usar las pestañas de ActionBar, un TabsAdapter y un ViewPager (scrolly bit). Aquí está un tutorial completo que hice: http://davidjkelley.net/?p=34 (sólo utilice las importaciones de ABS, no la biblioteca de compatibilidad estándar).
He aquí algunos de los códigos relevantes:
import java.util.ArrayList; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.MenuItem.OnMenuItemClickListener; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; public class Polling extends FragmentActivity { private ViewPager mViewPager; private TabsAdapter mTabsAdapter; private final static String TAG = "21st Polling:"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mViewPager = new ViewPager(this); mViewPager.setId(R.id.pager); setContentView(mViewPager); final ActionBar bar = getActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); bar.setDisplayShowTitleEnabled(false); bar.setDisplayShowHomeEnabled(false); mTabsAdapter = new TabsAdapter(this, mViewPager); mTabsAdapter.addTab(bar.newTab().setText(R.string.login), LoginFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.economics), EconFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.elections), ElectionsFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.politics), PoliticsFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.science), ScienceFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.finance), FinanceFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.religion), ReligionFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.military), MilitaryFragment.class, null); mTabsAdapter.addTab(bar.newTab().setText(R.string.international), InternationalFragment.class, null); } public static class TabsAdapter extends FragmentPagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener { private final Context mContext; private final ActionBar mActionBar; private final ViewPager mViewPager; private final ArrayList<TabInfo> mTabs = new ArrayList<TabInfo>(); static final class TabInfo { private final Class<?> clss; private final Bundle args; TabInfo(Class<?> _class, Bundle _args) { clss = _class; args = _args; } } public TabsAdapter(FragmentActivity activity, ViewPager pager) { super(activity.getSupportFragmentManager()); mContext = activity; mActionBar = activity.getActionBar(); mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) { TabInfo info = new TabInfo(clss, args); tab.setTag(info); tab.setTabListener(this); mTabs.add(info); mActionBar.addTab(tab); notifyDataSetChanged(); } public int getCount() { return mTabs.size(); } public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); } public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } public void onPageSelected(int position) { mActionBar.setSelectedNavigationItem(position); } public void onPageScrollStateChanged(int state) { } public void onTabSelected(Tab tab, FragmentTransaction ft) { mViewPager.setCurrentItem(tab.getPosition()); Log.v(TAG, "clicked"); Object tag = tab.getTag(); for (int i=0; i<mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } public void onTabUnselected(Tab tab, FragmentTransaction ft) {} public void onTabReselected(Tab tab, FragmentTransaction ft) {} public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {} @Override public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) { Object tag = tab.getTag(); for (int i=0; i<mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {} }
Las pestañas que se están refiriendo son en realidad sólo un ViewPager con pestañas de título correspondientes para cada página. Esto no está incluido en el SDK de Android de forma predeterminada, pero puede utilizar ViewPagerIndicator
Jake Wharton para agregar los títulos de cada ficha en su ViewPager. Creo que ActionBarSherlock
(que también es creado por Jake Wharton) proporciona la misma funcionalidad exacta también.
Tuve un problema similar, pero no estaba implementando ningún ActionBar en absoluto. Me encontré con este blog que me llevó a una aplicación llamada "SwipeyTabs" que se utiliza simplemente con un ViewPager.
http://blog.peterkuterna.net/2011/09/viewpager-meets-swipey-tabs.html
Si está utilizando ActionBarSherlock, es mejor utilizar las pestañas de la barra de acción, no TabHost
. También creo que hay muestras en ABS que muestran cómo hacerlo.
Usted querrá usar ViewPager, y abandonar el TabHost.
http://developer.android.com/reference/android/support/v4/view/ViewPager.html
- Error al instalar la aplicación (INSTALL_FAILED_DEXOPT)
- MyLocation botón oculto tras la barra de acción transparente, cómo reposicionar?