9

मुझे ViewPager के साथ एक और समस्या आई है और मैं अभी इसे अपने वर्तमान ज्ञान के साथ हल नहीं कर सकता।एंड्रॉइड टैबपेज संकेतक सामग्री रैपिंग समस्या

मेरे पास ViewPager के साथ TabPageIndicator है और प्रत्येक टैब पर, मैं टेक्स्ट दिखा रहा हूं। यह सरल 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 ...

उत्तर

4

मुझे लगता है कि इस मुद्दे को सरल था मैं:

किसी भी मदद की सराहना की

संपादित एक:

मुझे विश्वास है कि समस्या यहाँ है इस भाग पर टिप्पणी की:

 @Override 
     public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
      super.onMeasure(widthMeasureSpec, heightMeasureSpec); 

      // Re-measure if we went beyond our maximum size. 
//   if (mParent.mMaxTabWidth > 0 && getMeasuredWidth() > mParent.mMaxTabWidth) { 
//    super.onMeasure(MeasureSpec.makeMeasureSpec(mParent.mMaxTabWidth, MeasureSpec.EXACTLY), heightMeasureSpec); 
//   } 
     } 

अब यह जिस तरह से चाहता था मैं काम करता हूं ... मैं हर समय कोड के गलत हिस्सों को देख रहा था।

+0

मैं इस कोशिश की, लेकिन यह – Shehabix

0

मुझे एक ही समस्या थी, पूरा पाठ नहीं दिखाया गया था। मैंने इसे बाएं/दाएं शैली पैडिंग को कम करने का हल किया।

0

चौड़ाई के लिए लेआउट वजन = 1 के बजाय, मैंने लपेटें सामग्री विशेषता का उपयोग किया। TabPageIndicator कक्षा में, addTab (पूर्णांक, CharSequence, पूर्णांक) विधि, निम्नलिखित के साथ mTabLayout.addView बदल देते हैं:

mTabLayout.addView (tabView, नई LinearLayout.LayoutParams (WRAP_CONTENT, WRAP_CONTENT));

1

मुझे टैब में इलिप्सिंग टेक्स्ट के साथ समस्याएं हो रही थीं जब इसे नहीं करना चाहिए। मुझे @ लाहम के सुझाव का उपयोग करके here, #227 को ठीक किया गया। यहाँ मूल रूप से उन्होंने क्या किया है, लेकिन यह एक अच्छा विचार है उन्होंने क्या किया के बारे में उनकी व्याख्या पढ़ना होगा और क्यों वह यह किया: साथ

mTabLayout.addView(tabView, new LinearLayout.LayoutParams(0, MATCH_PARENT, 1)); 

:

TabPageIndicator.java में, निम्न की जगह

mTabLayout.addView(tabView, new LinearLayout.LayoutParams(WRAP_CONTENT, MATCH_PARENT, 1)); 

यह मेरे लिए तय किया गया। "आप कुछ इसी तरह का अनुभव है किसी भी मदद की सराहना की है?" .. मैं था:

0

अद्यतन ViewPageIndicator लाइब्रेरी :) आधिकारिक तौर पर तय किया गया था :)

+0

काम नहीं किया सवाल था एक ही समस्या है, और यह गिट रेपो से नवीनतम संस्करण खींचने के लिए तय किया गया था। तो क्यों नहीं? – cV2

संबंधित मुद्दे