2016-08-24 6 views
1

В моем макете вкладок у меня есть 3 вкладки. Титул этих вкладок по умолчанию все в шапках. Я хочу применять стили, такие как Bole, Italic и размер шрифта, для вкладок по-разному. Я использую компоновку вкладок и просмотр пейджера с помощью NoActionBar как стиля.Можно ли применять стили для названий табуляций

+0

да ..its возможно – shahid17june

+0

вы можете разместить answer.How мы можем применить эти стили? –

+0

Конечно. Просто дайте мне несколько минут. – shahid17june

ответ

1

Это не представляется возможным применить стили к Вкладки по умолчанию title.Следующая ссылка поможет вам создать пользовательские вкладки.

http://mrbool.com/how-to-customize-tab-layout-in-android/28153

+0

Эта ссылка очень полезна для создания пользовательских вкладок. –

0

Да, вы можете просто следовать этому

custom_tab_item:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/tab" 
    android:gravity="center" 
    android:textColor="@android:color/white" 
android:textSize="@dimen/tab_label"/> 

main_layout:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:fitsSystemWindows="true" 
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:layout_height="wrap_content"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorPrimary" 
     android:minHeight="?attr/actionBarSize" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
     app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
     app:layout_scrollFlags="scroll|enterAlways"> 

     <TextView 
      android:id="@+id/toolbar_title" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:textStyle="bold" 
      style="@android:style/TextAppearance.Medium" 
      android:text="Toolbar Title" /> 


    </android.support.v7.widget.Toolbar> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tabs" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/colorPrimary" 
     app:tabGravity="fill" 
     app:tabIndicatorColor="@android:color/white" 
     app:tabMode="fixed" /> 

Activity:

public class DiningActivity extends AppCompatActivity { 

    private Toolbar mToolbar; 

    private TabLayout mTabLayout; 

    private ViewPager mViewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.activity_dining); 

     mToolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(mToolbar); 
     ((TextView) findViewById(R.id.toolbar_title)).setText(R.string.dining); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     mViewPager = (ViewPager) findViewById(R.id.viewpager); 
     setupViewPager(mViewPager); 

     mTabLayout = (TabLayout) findViewById(R.id.tabs); 
     mTabLayout.setupWithViewPager(mViewPager); 
     setupTabs(); 
    } 

    private void setupViewPager(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new RestaurantFragment(), getString(R.string.restaurants)); 
     adapter.addFragment(new HotelsFragment(), getString(R.string.hotels)); 
     adapter.addFragment(new BarsPubsFragment(), getString(R.string.bars_pubs)); 
     viewPager.setAdapter(adapter); 
    } 

    private void setupTabs() { 

     TextView tabOne = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab_item, null); 
     tabOne.setText(getString(R.string.restaurants)); 
     mTabLayout.getTabAt(0).setCustomView(tabOne); 

     TextView tabTwo = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab_item, null); 
     tabTwo.setText(getString(R.string.hotels)); 
     mTabLayout.getTabAt(1).setCustomView(tabTwo); 

     TextView tabThree = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab_item, null); 
     tabThree.setText(getString(R.string.bars_pubs)); 
     mTabLayout.getTabAt(Numerics.TWO).setCustomView(tabThree); 

    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (item.getItemId() == android.R.id.home) { 
      super.onBackPressed(); 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 
+0

Если мы хотим применить любые размеры и стиль, мы можем упомянуть в custom_tab_item.layout.I понимаю, что это правильно или неправильно? –

+0

да, вы правы –

+0

k я попробую это и дам вам знать, что это работа r нет. –

0

внутри android.support.design.widget.TabLayout установлен атрибут темы как этот

android:theme="@style/Base.Widget.Design.TabLayout" 

и определить тему в стиле

<style name="Base.Widget.Design.TabLayout" parent="android:Widget"> 
    <item name="android:fontFamily">sans-serif</item> 
    <item name="android:textStyle">normal</item> 
</style> 
+0

не работает стиль применяется для текста в вкладках, а не в титрах. Я хочу применить стиль к ** Tab Title **. –

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