java - 如何显示带边距或不同设计的 viewpager

标签 java android android-layout android-fragments android-viewpager

我正在使用 View 寻呼机来显示一些 fragment 。

我试图通过引用这个来实现这个:Android ViewPager - Smooth Transition for this Design

包含布局的我的 View 寻呼机:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"
android:weightSum="1"
tools:context="com.tpayerapp.Fragments.DepositMoneyFragment">


<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:layout_centerInParent="true"
    android:clipToPadding="false"
    android:layout_above="@+id/indicator"
    android:layout_below="@+id/tabs"
    android:padding="80dp" />

<me.relex.circleindicator.CircleIndicator
    android:id="@+id/indicator"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true"
    android:layout_centerInParent="false"
    app:ci_drawable="@drawable/radius"
    app:ci_drawable_unselected="@drawable/grey_radius"
    app:ci_height="6dp"
    app:ci_width="6dp">


</me.relex.circleindicator.CircleIndicator>

fragment 1 布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
tools:context="com.tpayerapp.Fragments.PayPalFragment">


<ImageView
    android:id="@+id/imageView25"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentBottom="false"
    android:layout_alignParentRight="false"
    android:layout_alignParentTop="false"
    android:layout_alignWithParentIfMissing="false"
    android:layout_centerHorizontal="false"
    android:layout_centerInParent="true"
    android:background="@color/colorAccent"
    app:srcCompat="@drawable/paypal" />

查看寻呼机 fragment java代码:

    public class DepositMoneyFragment extends Fragment {
    private ViewPager viewPager;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_deposit_money, container, false);


        setUpUI(view);

        return view;
    }

    public void setUpUI(View view) {


        viewPager = (ViewPager) view.findViewById(R.id.viewpager);
        setupViewPager(viewPager);


        CircleIndicator indicator = (CircleIndicator) view.findViewById(R.id.indicator);
        indicator.setViewPager(viewPager);

        viewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
            @Override
            public void transformPage(View page, float position) {
                int pageWidth = viewPager.getMeasuredWidth() - viewPager.getPaddingLeft() - viewPager.getPaddingRight();
                int pageHeight = viewPager.getHeight();
                int paddingLeft = viewPager.getPaddingLeft();
                float transformPos = (float) (page.getLeft() - (viewPager.getScrollX() + paddingLeft)) / pageWidth;

                final float normalizedposition = Math.abs(Math.abs(transformPos) - 1);
                page.setAlpha(normalizedposition + 0.5f);

                int max = -pageHeight / 10;

                if (transformPos < -1) { // [-Infinity,-1)
                    // This page is way off-screen to the left.
                    page.setTranslationY(0);
                } else if (transformPos <= 1) { // [-1,1]
                    page.setTranslationY(max * (1-Math.abs(transformPos)));

                } else { // (1,+Infinity]
                    // This page is way off-screen to the right.
                    page.setTranslationY(0);
                }


            }

        });
    }

    @Override
    public void onResume() {
        super.onResume();

        ((OnFragmentTitleChangeListener) getActivity()).onFragmentTitle(getResources().getString(R.string.deposite));
    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager());
        adapter.addFragment(new PayPalFragment(), "");
        adapter.addFragment(new PayStackFragment(), "");
        adapter.addFragment(new NIBBSFragment(), "");

        viewPager.setAdapter(adapter);
    }
}

要得到这个设计需要做什么?请帮忙。谢谢..

最佳答案

尝试将边距更改为填充

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingLeft="40dp"
 android:paddingRight="40dp"
 tools:context="com.tpayerapp.Fragments.PayPalFragment">


<ImageView
android:id="@+id/imageView25"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="false"
android:layout_alignParentRight="false"
android:layout_alignParentTop="false"
android:layout_alignWithParentIfMissing="false"
android:layout_centerHorizontal="false"
android:layout_centerInParent="true"
android:background="@color/colorAccent"
app:srcCompat="@drawable/paypal" />

关于java - 如何显示带边距或不同设计的 viewpager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45476235/

相关文章:

android - 如何在android中以编程方式查找TextView的文本区域(高度/宽度)

机器人:屏幕方向?只能在高分辨率设备上横向显示吗?

java - Junit测试如何读取日志文件

Java异常: throw back or send as return (function output)?

android - 是否可以无限期地运行我的服务?

使用 OnClickListener 登录 Android facebook

java - 如何在 Vaadin 8 中设置网格以按自定义比较器排序?

java - java中静态方法覆盖的奇怪情况

android - 如何从特定的蓝牙配置文件中获取连接的设备列表

Android:ScrollView 无法与 View 类一起使用