Проблема переноса содержимого индикатора Android TabPage

Я столкнулся с другой проблемой с ViewPager, и я не могу решить ее с моими текущими знаниями прямо сейчас.

У меня есть TabPageIndicator с ViewPager, и на каждой вкладке я показываю текст. Это просто textView:

<?xml version="1.0" encoding="utf-8"?>
<view xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    class="viewpagerindicator.TabPageIndicator$TabView" >

    <TextView
        android:id="@+id/vpi_tab_text"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:gravity="center"
        android:paddingBottom="10dip"
        android:paddingLeft="8dip"
        android:paddingRight="8dip"
        android:paddingTop="10dip"
        android:textColor="@drawable/vpi_tab_text_color"
        android:typeface="serif" />

</view>

Я хочу, чтобы текст на вкладке всегда был одной строкой и всегда был целым текстом, а не эллипсом, без переноса, не более 1 строки. Требуется, чтобы пользователь мог прочитать его целиком...

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

Испытывали ли вы нечто подобное?

Приветствуется любая помощь

ИЗМЕНИТЬ ПЕРВЫЙ:

Я считаю, что проблема здесь:

@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
final boolean lockedExpanded = widthMode == MeasureSpec.EXACTLY;
setFillViewport(lockedExpanded);
    final int childCount = mTabLayout.getChildCount();
    if (childCount > 1 && (widthMode == MeasureSpec.EXACTLY || widthMode == MeasureSpec.AT_MOST)) {
        if (childCount > 2) {
            mMaxTabWidth = (int) (MeasureSpec.getSize(widthMeasureSpec) * 0.4f);
        } else {
            mMaxTabWidth = MeasureSpec.getSize(widthMeasureSpec) / 2;
        }
    } else {
        mMaxTabWidth = -1;
    }

    final int oldWidth = getMeasuredWidth();
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    final int newWidth = getMeasuredWidth();

    if (lockedExpanded && oldWidth != newWidth) {
        // Recenter the tab display if we're at a new (scrollable) size.
        setCurrentItem(mSelectedTabIndex);
    }
 }

mMaxTabWidth...

9
задан Hawk 27 June 2012 в 23:19
поделиться