2015-01-18 4 views
0

Можно ли заполнить панель действий полностью вкладками? В настоящее время мои вкладки растянуты на обычном телефоне, но когда я иду на планшет, это очень мало.Панель действий растягивается накладки

Я уже нашел это:

private void setTabsMaxWidth() { 
    DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    int screenWidth = displaymetrics.widthPixels; 
    final ActionBar actionBar = getActionBar(); 
    final View tabView = actionBar.getTabAt(0).getCustomView(); 
    final View tabContainerView = (View) tabView.getParent(); 
    final int tabPadding = tabContainerView.getPaddingLeft() + tabContainerView.getPaddingRight(); 
    final int tabs = actionBar.getTabCount(); 
    for(int i=0 ; i < tabs ; i++) { 
     View tab = actionBar.getTabAt(i).getCustomView(); 
     TextView text1 = (TextView) tab.findViewById(R.id.tab_title); 
     text1.setMaxWidth(screenWidth/tabs-tabPadding-1); 
    } 
} 

и в сочетании с пользовательской точки зрения на вкладке:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/tab_title" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:text="TEST" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     /> 

</LinearLayout> 

Но до сих пор не работает

Любые идеи?

Благодаря

ответ

1

Прежде всего позвольте мне сказать вам, что этот метод для реализации вкладок (в режиме навигации для ActionBar) является устаревшим. Вместо этого вы должны использовать адаптер пейджера, который будет хорошо играть с ToolBar. Есть официальные андроид образцы с SlidingTabLayouts, которые показывают, как реализовать это, see this dev byte for some more info.

Во-вторых, если вы идете вниз маршрут SlidingTabsLayout, в createDefaultTabView() метод, я добавил это, чтобы обеспечить мои две вкладки заполнить ширину экрана одинаково :

//Set tabs to take up entire screen width 
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
    Display display = wm.getDefaultDisplay(); 
    Point size = new Point(); 
    if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB_MR2) { 
     display.getSize(size); 
    } 
    else 
    { 
     size.set(display.getWidth(), display.getHeight()); 
    } 
    textView.setWidth(size.x/2); 

быстрый взгляд на ваш код заставляет меня думать, вы должны быть настройки ширины текстовом, а не MaxWidth. Но я думаю, что ваш расчет менее разборчив, поэтому я не уверен, что это тоже неправильно.

+0

Да, я был занят некоторое время назад с помощью приложения, но я переключусь на SlidingTabLyout. Благодарю. – David

+0

Хороший материал, удачи :) –

Смежные вопросы