2015-07-25 2 views
2

Я использую setPadding() на моем ViewPager для достижения эффекта прокрутки карты, который работает нормально, но поскольку я применяю дополнение к ViewPager (60, 0 , 60, 0) ширина PagerTabStrip становится явно меньше, и теперь я получаю разрыв в 60 дп между заголовками и обоими краями экрана (как на рисунке ниже).ViewPager с setPadding() для горизонтального эффекта Swipe Cards - отключить заголовки PagerTabStrip

Я пытался увеличить ширину PagerTabStrip программно (при отсутствии лучшего решения) с помощью SetMinimumWidth(), но это не имеет никакого значения.

Как можно преодолеть обрезанные заголовки и разрыв 60 дп, вызванный setPadding()? Спасибо!

код я использую:

pager = (ViewPager) v.findViewById(R.id.pager); 
      pager.setAdapter(new CardsPagerAdapter(getActivity(), cardImages, cardTitles, cardDescription)); 

      pager.setPadding(50, 0, 50, 0); 
      pager.setClipToPadding(false); 
      pager.setPageMargin(20); 

      WindowManager wm = (WindowManager) getActivity().getSystemService(Context.WINDOW_SERVICE); 
      Display display = wm.getDefaultDisplay(); 
      Point size = new Point(); 
      display.getSize(size); 

      pagerStrip = (PagerTabStrip) v.findViewById(R.id.pager_tab_strip); 
      pagerStrip.setMinimumWidth(size.x); 

XML:

<android.support.v4.view.ViewPager 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/pager" 
      android:layout_width="fill_parent" 
      android:layout_height="390dp" 
      android:layout_below="@+id/homeTopIv" 
      android:layout_marginTop="-85dp"> 


      <android.support.v4.view.PagerTabStrip 
       android:id="@+id/pager_tab_strip" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_gravity="top" 
       android:background="@android:color/transparent" 
       android:textAppearance="@style/PagerTabStripText" 
       android:paddingTop="5dp" 
       android:paddingBottom="14dp"/> 

     </android.support.v4.view.ViewPager> 

enter image description here

ответ

1

Наконец, после двух дней поисков я нашел решение, которое проще, чем я думал. Надеемся помочь другим, желающим красивой карты Swipe Card для своего приложения для Android. Все, что я должен был сделать это, чтобы добавить эти строки, как к ViewPager и PagerTitleStrip XML:

андроида: clipChildren = "ложных"
андроида: clipToPadding = "ложных"

окончательный код :

<android.support.v4.view.ViewPager 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/pager" 
      android:layout_below="@+id/imageCont" 
      android:layout_above="@+id/bottomIndContainer" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:clipToPadding="false" 
      android:clipChildren="false" 
      android:layout_marginTop="-85dp"> 


      <android.support.v4.view.PagerTabStrip 
       android:id="@+id/pager_tab_strip" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="top" 
       android:background="@android:color/transparent" 
       android:textAppearance="@style/PagerTabStripText" 
       android:paddingTop="5dp" 
       android:clipChildren="false" 
       android:clipToPadding="false" 
       android:paddingBottom="14dp"/> 

     </android.support.v4.view.ViewPager> 
Смежные вопросы