Ich habe ein anderes Problem mit ViewPager festgestellt und ich kann es nicht mit meinem derzeitigen Wissen im Augenblick lösen.Android TabPage Indikator Inhalt Verpackung Problem
Ich habe TabPageIndicator mit ViewPager und auf jeder Registerkarte, zeige ich Text. Es ist ganz einfach 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>
ich der Text in den Registerkarte will eine einzelne Zeile immer zu sein und immer ganzen Text, nicht ellipsize, keine Verpackung, nicht mehr als 1 Zeile zu sein. Es ist erforderlich, damit der Benutzer es ganz lesen kann ...
Aber ich kann das nicht tun, ich habe verschiedene Optionen ausprobiert und ich stoße immer noch auf einige Probleme - entweder der Text hat mehr als nur eine Zeile, aber nur die erste wird angezeigt, oder nur ein Teil des Textes wird angezeigt.
Haben Sie Ähnliches erlebt?
Ich glaube, dass das Problem hier ist:
@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 ...
ich das versucht, aber es hat nicht funktioniert – Shehabix