ViewPager с setPadding() для горизонтального эффекта Swipe Cards - обрезать заголовки PagerTabStrip
Я использую setPadding () на моем ViewPager для достижения эффекта перелистывания карт, который работает нормально, но когда я применяю заполнение к ViewPager (60, 0, 60, 0), ширина PagerTabStrip становится явно меньше, и теперь я получаю Разрыв в 60dp между заголовками и обоими краями экрана (как на картинке ниже).
Я пытался увеличить ширину PagerTabStrip программно (в отсутствие лучшего решения), используя SetMinimumWidth(), но это не имеет никакого значения.
Как я могу преодолеть обрезанные заголовки и разрыв в 60dp, вызванный 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>
1 ответ
Наконец, после двух дней поиска я нашел решение, которое проще, чем я думал. Надеюсь помочь другим, желающим получить приятный макет карты Swipe для своего приложения для 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>