Las pestañas de la barra de acción no llenan la pantalla en android

Me utilizan la barra de acción de la ayuda en una aplicación y la prueba en 2 dispositivos Nexus S y Nexus 7 y encontré resultados diferentes con respecto al ancho de la barra de la lengüeta, Nexus S barra de la lengüeta ancho mientras que nexo 7 barra de la lengüeta deja un poco de espacio en lado izquierdo. He utilizado el tema por defecto proporcionado por la barra de acción de apoyo, la aplicación de temas personalizados no efecto barra de acción porque el estilo padre debe ser Theme.AppCompat.Light

Actividad en Manifest

<activity android:name=".MainActivity" android:screenOrientation="portrait" android:theme="@style/Theme.AppCompat.Light" > <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="match_parent" /> 

Clase:

 public class MainActivity extends ActionBarActivity implements ActionBar.TabListener { ActionBar bar; ViewPager pager; TabsAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pager = (ViewPager) findViewById(R.id.pager); bar = getSupportActionBar(); adapter = new TabsAdapter(getSupportFragmentManager()); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); bar.setHomeButtonEnabled(false); pager.setAdapter(adapter); pager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { // When swiping between different app sections, select the // corresponding tab. // We can also use ActionBar.Tab#select() to do this if we have // a reference to the // Tab. bar.setSelectedNavigationItem(position); } }); Tab hometab = bar.newTab(); hometab.setText("Home"); hometab.setTabListener(this); bar.addTab(hometab); Tab cameratab = bar.newTab(); cameratab.setText("Camera"); cameratab.setTabListener(this); bar.addTab(cameratab); Tab exploretab = bar.newTab(); exploretab.setText("Explore"); exploretab.setTabListener(this); bar.addTab(exploretab); bar.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bar MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); } @Override public void onTabReselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } @Override public void onTabSelected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub pager.setCurrentItem(arg0.getPosition()); } @Override public void onTabUnselected(Tab arg0, FragmentTransaction arg1) { // TODO Auto-generated method stub } 

}

Aquí hay capturas de pantalla

Introduzca aquí la descripción de la imagen

Introduzca aquí la descripción de la imagen

Utilice imágenes de alta resolución para tablets.Puede que dentro de la carpeta drawable-xxhdpi. Si esta solución no funciona. Entonces

Método alternativo:

Pasos

1: Crear 3 diseños separados – uno para la pestaña Inicio, uno para la pestaña de la cámara y otro para la pestaña de exploración.

2: Usando Layout Inflater, puede agregar este diseño por separado a estas pestañas.

Código de muestra:

 public class MyActivities extends SherlockFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { setTheme(R.style.customActionBarTabStyle); super.onCreate(savedInstanceState); } public static class TabListener<T extends Fragment> implements ActionBar.TabListener { private Fragment mFragment; private final Activity mActivity; private final String mTag; private final Class<T> mClass; /** * Constructor used each time a new tab is created. * * @param activity * The host Activity, used to instantiate the fragment * @param tag * The identifier tag for the fragment * @param clz * The fragment's Class, used to instantiate the fragment */ public TabListener(Activity activity, String tag, Class<T> clz) { mActivity = activity; mTag = tag; mClass = clz; } public void onTabSelected(Tab tab, FragmentTransaction ignoredFt) { FragmentManager fragMgr = ((FragmentActivity) mActivity) .getSupportFragmentManager(); FragmentTransaction ft = fragMgr.beginTransaction(); mFragment = Fragment.instantiate(mActivity, mClass.getName()); // ft.add(android.R.id.content, mFragment, mTag); ft.add(R.id.relMiddle, mFragment, mTag); ft.addToBackStack(mTag); ft.commit(); } public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { if (mFragment != null) { FragmentManager man = ((FragmentActivity) mActivity) .getSupportFragmentManager(); if (man.getBackStackEntryCount() > 0) man.popBackStack(man.getBackStackEntryAt(0).getName(), FragmentManager.POP_BACK_STACK_INCLUSIVE); ft.detach(mFragment); } } public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { // User selected the already selected tab. Usually do nothing. } } public void settings() { actionbar = getSupportActionBar(); actionbar.setDisplayShowTitleEnabled(false); getSupportActionBar().setCustomView(R.layout.myactivities_header); getSupportActionBar().setDisplayShowCustomEnabled(true); actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); /* * For showing custom top layout in actionbar * * Build verson is checking for Api <3.0 */ View homeIcon = findViewById(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.id.home : R.id.abs__home); ((View) homeIcon.getParent()).setVisibility(View.GONE); mTabsAdapter = new TabsAdapter(this, actionbar, mViewPager); /* * Use Customview for TABS IN FULL WIDTH * * 1: Note: use imageview with full width and full height. * * 2: Note : If we use seticon instead setContentview,Tabs may not show * in full width /height */ mTabsAdapter.addTab( actionbar.newTab().setText(" ") .setCustomView(R.layout.cus_home_tab), Home.class, null); mTabsAdapter.addTab( actionbar.newTab().setText("") .setCustomView(R.layout.cus_camera_tab), Camera.class, null); mTabsAdapter.addTab( actionbar.newTab().setText("") .setCustomView(R.layout.cus_explore_tab), Rxplore.class, null); } public static class TabsAdapter extends FragmentPagerAdapter implements ViewPager.OnPageChangeListener, ActionBar.TabListener { private final Context mContext; private final ActionBar mBar; 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, ActionBar bar, ViewPager pager) { super(activity.getSupportFragmentManager()); mContext = activity; mBar = bar; mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); System.out.println("inside tab adapter"); } public void addTab(ActionBar.Tab tab, Class<? extends Fragment> clss, Bundle args) { TabInfo info = new TabInfo(clss, args); tab.setTag(info); tab.setTabListener(this); mTabs.add(info); mBar.addTab(tab); notifyDataSetChanged(); } @Override public int getCount() { return mTabs.size(); } @Override public Fragment getItem(int position) { TabInfo info = mTabs.get(position); return Fragment.instantiate(mContext, info.clss.getName(), info.args); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { mBar.setSelectedNavigationItem(position); } @Override public void onPageScrollStateChanged(int state) { } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { Object tag = tab.getTag(); //System.out.println("Tabs Size is " + mTabs.size()); for (int i = 0; i < mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } } @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { } } } 
  • Evitar / prevenir que un fragmento se refresque al cambiar las pestañas
  • Android: ¿Por qué no debo usar actividades dentro de pestañas?
  • TabHost and tabWidget icon problema
  • TabLayout seleccionado El icono Tab no está seleccionado al iniciar:
  • Android multiple videoView problem, Galaxy Tab específico
  • Cerrar el teclado virtual después de cambiar las pestañas en tabhost
  • Android: "Tipo de navegación: Fijaciones fijas + Golpe"
  • Android - FragmentTabHost Error "Ninguna pestaña conocida para la etiqueta null"
  • El contenido de la ficha permanece visible después de cambiar la pestaña después del cambio de orientación
  • Ficha que no toma el ancho completo en el dispositivo Tablet
  • ¿Cómo cambiar el texto de la pestaña de android en la mosca?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.