Вопрос по tabs, android, actionbarsherlock – Изменить стиль шрифта на вкладках панели действий с помощью Sherlock

10

мы читали это:

Android - настройка вкладок «Шерлок» на панели действий

И еще много ссылок, ямы выяснили, что такое StackedBackground и что такое Background, но я могуt, как удалить все заглавные буквы из вкладок и получить обычные шрифты, или изменить размер шрифта на вкладках панели действий.

Кроме того, яя бы хотел изменить цвет моего синего подчеркивания, и если я использую 9 патчей, я получаю ситуацию, аналогичную приведенной выше ссылке, получаю строку ниже текста, но не ниже в нижней части вкладки, а исходная синяя линия остается такой Я получаю две строки.

Пока у меня есть это, но ямы пробовали размеры текста и все виды цветов, но ничего:


    @style/MyActionBar
    @style/MyActionBar



    @drawable/grey
    @drawable/ab_transparent_example
    false
    10dp

Редактировать: я только что понял, что я могу удалить все заглавные буквы, используя "андроид: actionBarTabTextStyle», но теперь он принимает цвет фона от "MyActionBar» ... Как настроить списки actionBarTabTextStyle и actionBarStyle в некоторой иерархии, чтобы текст был сокращен, а не прописными буквами, но чтобы он не был фоновым из "MyActionBar» стиль.

Редактировать 2: яЯ попробовал еще несколько 9patch изображений, и это выглядит ужасно, но я просто могуизбавиться от синих линий ...

Привет, зачем тебе здесь 9-патч? Вы можете использовать представление в качестве подчеркивания, чтобы оно охватывало каждый макет. IgorGanapolsky

Ваш Ответ

1   ответ
20

что об этом спрашивали много лет назад, но яМы потратили некоторое время, пытаясь разобраться в этом, так что это для тех, кто нашел этот вопрос и все еще хочет знать ответ.

Сначала создайте XML-файл со следующим: tab_title.xml

<textview xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/action_custom_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="My Custom title" android:textcolor="#fff" android:textsize="18sp" android:paddingtop="5dp">
</textview>

Затем в классе, в котором вы создаете экземпляр ActionBar, используйте этот код, чтобы установить текст на каждой из вкладок. (Этот пример используетActionBarSherlock.)

ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

String[] tabNames = {"Tab 1","Tab 2","Tab 3"};

for(int i = 0; i<bar.gettabcount(); i++){="" layoutinflater="" inflater="LayoutInflater.from(this);" view="" customview="inflater.inflate(R.layout.tab_title," null);="" textview="" titletv="(TextView)" customview.findviewbyid(r.id.action_custom_title);="" titletv.settext(tabnames[i]);="" here="" you="" can="" also="" add="" any="" other="" styling="" want.="" bar.gettabat(i).setcustomview(customview);="" }="" <="" code=""></bar.gettabcount();>

Надеюсь, это поможет любому, у кого были такие же проблемы, как и я.

<strong>// обновление 1/6/2015</strong>

если вы используете TabLayout в<strong>Android M превью</strong> и вы хотите изменить шрифт, вы должны добавить новый цикл for к предыдущему решению, как это:

<code> private void changeTabsFont() {

        ViewGroup vg = (ViewGroup) tabLayout.getChildAt(0);
        int tabsCount = vg.getChildCount();
        for (int j = 0; j < tabsCount; j++) {
            ViewGroup vgTab = (ViewGroup) vg.getChildAt(j);
            int tabChildsCount = vgTab.getChildCount();
            for (int i = 0; i < tabChildsCount; i++) {
                View tabViewChild = vgTab.getChildAt(i);
                if (tabViewChild instanceof TextView) {
                    ((TextView) tabViewChild).setTypeface(Font.getInstance().getTypeFace(), Typeface.NORMAL);
                }
            }
        }
    } 
</code>
Проблема яО чем идет речь, описано здесь -stackoverflow.com/questions/13430542/.... lomza
Я заметил, что есть проблема с этим подходом. Если у вас много вкладок, и они неt вписывается в ActionBar в ландшафтном режиме, они отображаются в списке переполнения, но выбранное значение пусто. И когда вы нажимаете на этот списокПосле этого все эти взгляды исчезнут. Только не забудьте проверить, как все выглядит в ландшафте на телефонах (потому что на планшетах было бы достаточно места для вкладок, вероятно). знак равно lomza
ООО Спасибо! В моем проекте это был метод обхода для меня, и он сделал свою работу. Если вы найдете лучший способ опубликовать его здесь! Marche101
Благодарю. Это помогло мне rasen58

Похожие вопросы