poner pestañas en la parte inferior de la pantalla
Quiero poner pestañas en la parte inferior de mi pantalla. Para este propósito tengo el código siguiente:
package info.androidhive.tabsswipe; import info.androidhive.tabsswipe.adapter.TabsPagerAdapter; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { private ViewPager viewPager; private TabsPagerAdapter mAdapter; private ActionBar actionBar; // Tab titles private String[] tabs = { "Top Rated", "Games", "Movies" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initilization viewPager = (ViewPager) findViewById(R.id.pager); actionBar = getActionBar(); mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(mAdapter) ; actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); // Adding Tabs for (String tab_name : tabs) { actionBar.addTab(actionBar.newTab().setText(tab_name) .setTabListener(this)); } /** * on swiping the viewpager make respective tab selected * */ viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { // on changing the page // make respected tab selected actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // on tab selected // show respected fragment view viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } }
Por este código, tengo el siguiente diseño:
- Creación de una base de datos de aplicaciones para Android con gran cantidad de datos
- Tiempo de espera de la pantalla Android
- Barra de pestañas de diapositivas como en Android Market
- Android - Extensiones de Google Maps - IllegalArgumentException
- Instalación de Pocketsphinx en Android
package info.androidhive.tabsswipe; import info.androidhive.tabsswipe.adapter.TabsPagerAdapter; import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.ViewPager; public class MainActivity extends FragmentActivity implements ActionBar.TabListener { private ViewPager viewPager; private TabsPagerAdapter mAdapter; private ActionBar actionBar; // Tab titles private String[] tabs = { "Top Rated", "Games", "Movies" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Initilization viewPager = (ViewPager) findViewById(R.id.pager); actionBar = getActionBar(); mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); viewPager.setAdapter(mAdapter) ; actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayShowHomeEnabled(false); actionBar.setDisplayShowTitleEnabled(false); // Adding Tabs for (String tab_name : tabs) { actionBar.addTab(actionBar.newTab().setText(tab_name) .setTabListener(this)); } /** * on swiping the viewpager make respective tab selected * */ viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { // on changing the page // make respected tab selected actionBar.setSelectedNavigationItem(position); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { // on tab selected // show respected fragment view viewPager.setCurrentItem(tab.getPosition()); } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } }
Por este código, Así es como la pantalla se ocupa de la compilación:
¿Cómo puedo poner pestañas en la parte inferior de la pantalla?
- Captura de EditText Foco perdido
- Botones sobre Mapview
- Posición incorrecta de elementos después de usar un customAdapter
- Android: ¿Cómo estirar una imagen al ancho de la pantalla mientras mantiene la relación de aspecto?
- Establecer la fecha / hora de Android mediante programación
- ActionBarSherlock con múltiples MenuItems?
- ¿Qué debe ser el JID para un usuario en OpenFire Server?
- Java convertir la marca de tiempo UTC a DateTime local
Estos ejemplos de código xml definen mover la pestaña a la parte inferior de la pantalla:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@android:id/tabs" > <FrameLayout android:id="@+id/tab_home" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <FrameLayout android:id="@+id/tab_video" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <FrameLayout android:id="@+id/tab_audio" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> <FrameLayout android:id="@+id/tab_blog" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> <FrameLayout android:id="@+id/tab_gal" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> <FrameLayout android:id="@+id/tab_more" android:layout_width="fill_parent" android:layout_height="fill_parent" > </FrameLayout> </FrameLayout> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" //align parent bottom mainly used for move the tab to bottom of the screen. android:background="@drawable/ic_launcher" android:divider="@null" /> <!-- android:background="#d8e49c" --> </RelativeLayout> </TabHost> </LinearLayout>
En realidad es contra la guía de diseño de Android, ya que en la parte inferior hay botones suaves / duros como el botón de inicio de botón de vuelta, etc
http://developer.android.com/design/patterns/pure-android.html
Pero si insistes en ponerlos en la parte inferior, puedes implementarlo como ejemplo de GitHub consiste en pestañas en la parte inferior, usando FragmentTabHost.
con una barra de acción que sólo será capaz de agregar pestañas en la parte superior, ya que es la forma en que las aplicaciones de Android se vería como. Tener pestañas en la parte inferior es puramente ios estilo. y si todavía desea lograr el mismo aspecto en:
esto . La fuente de Github se puede encontrar aquí
No lo haga, las pestañas siempre deben estar en la parte superior de Android.
una solución más: https://stackoverflow.com/a/23150258/2765497 para soporte api <11 reemplazar TabView a FragmentTabVeiw y agregar otras importaciones de Sherlock de la biblioteca de soporte
- ¿Cómo obtener el token de acceso después de que el usuario haya iniciado sesión desde Gmail en Android?
- Cómo variar entre el niño y el padre ver eventos de contacto de grupo