Как в нижнем регистре все буквы, кроме первой буквы в TabLayout?

1

Я хочу, чтобы все буквы были в нижнем регистре, но хочу сохранить первую букву в верхнем регистре, я хочу добиться этого в tabLayout.

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="23dp">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.design.widget.TabLayout
            android:layout_width="match_parent"
            app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
            android:layout_height="match_parent"
            android:id="@+id/tabs"
            app:tabTextColor="@color/colorAccent"
            android:background="#fff">

        </android.support.design.widget.TabLayout>

    </android.support.design.widget.AppBarLayout>

</RelativeLayout>

Вот мой код для tabLayout. Я включил следующую строку, но проблема в том, что все буквы в нижнем регистре.

app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"

Я также пытался сделать это программно, то есть в своем классе SectionsPagerAdapter, который я использую для своих фрагментов, так как я являюсь viewPager в своей деятельности. Вот мой класс SectionsPagerAdapter,

public class SectionsPagerAdapter extends FragmentStatePagerAdapter {

private final List<Fragment> mFragments = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public SectionsPagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public Fragment getItem(int i) {
    return mFragments.get(i);
}

@Override
public int getCount() {
    return mFragments.size();
}

public void addFragment(Fragment fragment, String fragTitle) {

    mFragments.add(fragment);
    mFragmentTitleList.add(fragTitle.toLowerCase());

}

@Override
public CharSequence getPageTitle(int position) {
    return mFragmentTitleList.get(position);
}

Также, чтобы вызвать это в моей рабочей деятельности (или фрагмент), я использовал следующий код,

public void setUpViewPager() {

    SectionsPagerAdapter adapter = new SectionsPagerAdapter(getChildFragmentManager());

    adapter.addFragment(new StudentsFragment(), "Students");

    adapter.addFragment(new ProfessorsFragment(), "Professors");

    adapter.addFragment(new AlumnusFragment(), "Alumnus");

    ViewPager viewPager = view.findViewById(R.id.container);

    viewPager.setAdapter(adapter);

    TabLayout tabLayout = view.findViewById(R.id.tabs);

    tabLayout.setupWithViewPager(viewPager);


}

Здесь я назвал имена "Студент, Профессор, Выпускник" (все буквы в верхнем регистре). Я хочу, чтобы это было то же самое, когда я запускаю приложение. Но проблема в том, что когда я включаю эту строку в закладку tabLayout для строчных букв, она также строчная для первой буквы. Как я могу достичь или преодолеть эту проблему?

Изображение 174551

Заранее спасибо!

Теги:
tabs
android-tablayout

1 ответ

2
Лучший ответ

может быть, этот фрагмент кода поможет, попробуйте применить его к вашему классу адаптера:

    public void addFragment(Fragment fragment, String fragTitle) {

    mFragments.add(fragment);
    fragTitle = fragTitle.toLowerCase()
    fragTitle = fragTitle.substring(0, 1).toUpperCase() + fragTitle.substring(1);
    mFragmentTitleList.add(fragTitle);

}
  • 0
    Это кажется ненужным. Названия уже начинаются с заглавной буквы.
  • 0
    «Но проблема в том, что когда я добавляю одну строчку в свой tabLayout для строчных букв, она также в нижнем регистре с первой буквой. Как мне решить или преодолеть эту проблему? Заранее спасибо!» ... ????? Да, но с помощью метода toLowerCase () они становятся строчными
Показать ещё 11 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню