带有 setPadding() 的 ViewPager 用于水平滑动卡片效果 - 切断 PagerTabStrip 标题
ViewPager with setPadding() for horizontal Swipe Cards effect - cut off PagerTabStrip titles
我在 ViewPager 上使用 setPadding() 来实现刷卡效果,效果很好,但是当我对 ViewPager (60, 0, 60, 0) 应用填充时,PagerTabStrip 的宽度明显变小了现在我在标题和屏幕的两个边缘之间有 60dp 的间隙(如下图所示)。
我试图使用 SetMinimumWidth() 以编程方式增加 PagerTabStrip 的宽度(缺乏更好的解决方案),但它没有任何区别。
如何克服由 setPadding() 引起的截断标题和 60dp 间隙?
谢谢!
我使用的代码:
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>
经过两天的搜索,我终于找到了比我想象的更简单的解决方案。希望能帮助其他想要为他们的 android 应用程序设计漂亮的刷卡布局的人。我所要做的就是将这些行添加到 ViewPager 和 PagerTitleStrip xml:
android:clipChildren="false"
android:clipToPadding="false"
最终代码:
<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>
我在 ViewPager 上使用 setPadding() 来实现刷卡效果,效果很好,但是当我对 ViewPager (60, 0, 60, 0) 应用填充时,PagerTabStrip 的宽度明显变小了现在我在标题和屏幕的两个边缘之间有 60dp 的间隙(如下图所示)。
我试图使用 SetMinimumWidth() 以编程方式增加 PagerTabStrip 的宽度(缺乏更好的解决方案),但它没有任何区别。
如何克服由 setPadding() 引起的截断标题和 60dp 间隙? 谢谢!
我使用的代码:
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>
经过两天的搜索,我终于找到了比我想象的更简单的解决方案。希望能帮助其他想要为他们的 android 应用程序设计漂亮的刷卡布局的人。我所要做的就是将这些行添加到 ViewPager 和 PagerTitleStrip xml:
android:clipChildren="false"
android:clipToPadding="false"
最终代码:
<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>