ViewPager Example

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#FF0000">

        <ImageView
            android:id="@+id/backImageView"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:src="@mipmap/ic_back" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="ViewPager Example"
            android:textColor="@android:color/white" />
    </RelativeLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:background="@android:color/white">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView
                android:id="@+id/dakongyiTextView"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:gravity="center"
                android:text="大空翼"
                android:textColor="@color/colorPrimary" />

            <View
                android:background="@color/colorPrimary"
                android:id="@+id/dakongyiUnderlineView"
                android:layout_width="match_parent"
                android:layout_height="3dp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView
                android:id="@+id/rixiangTextView"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:gravity="center"
                android:text="日向小次郎"
                android:textColor="@android:color/black" />

            <View
                android:id="@+id/rixiangUnderlineView"
                android:layout_width="match_parent"
                android:layout_height="3dp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:orientation="vertical">

            <TextView
                android:id="@+id/conanTextView"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:gravity="center"
                android:text="柯南"
                android:textColor="@android:color/black" />

            <View
                android:id="@+id/conanUnderlineView"
                android:layout_width="match_parent"
                android:layout_height="3dp" />
        </LinearLayout>
    </LinearLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/picViewPager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

fragment_pic.xml

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/picImageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
PicFragment.java
package com.example.buish.viewpagerexample;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class PicFragment extends Fragment {
    private int picIndex;
    private int[] resIds = {R.mipmap.dakongyi, R.mipmap.rixiang, R.mipmap.conan};
    private static final String KEY_PIC_INDEX = "PicIndex";

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        picIndex = getArguments().getInt(KEY_PIC_INDEX);
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_pic, null);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        ImageView picImageView = view.findViewById(R.id.picImageView);
        picImageView.setBackgroundResource(resIds[picIndex]);
    }

    public static PicFragment getInstance(int picIndex) {
        PicFragment picFragment = new PicFragment();
        Bundle args = new Bundle();
        args.putInt(KEY_PIC_INDEX, picIndex);
        picFragment.setArguments(args);
        return picFragment;
    }
}
PicFragmentPagerAdapter.java
package com.example.buish.viewpagerexample;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import java.util.ArrayList;

public class PicFragmentPagerAdapter extends FragmentPagerAdapter {
    private ArrayList<PicFragment> picFragments;

    public PicFragmentPagerAdapter(FragmentManager fragmentManager, ArrayList<PicFragment> picFragments) {
        super(fragmentManager);
        this.picFragments = picFragments;
    }

    @Override
    public PicFragment getItem(int i) {
        return picFragments.get(i);
    }

    @Override
    public int getCount() {
        return picFragments.size();
    }
}
MainActivity.java
package com.example.buish.viewpagerexample;

import android.graphics.Color;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    private TextView[] titleTextViews;
    private View[] underlineViews;
    private ViewPager picViewPager;
    private ArrayList<PicFragment> picFragments;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.backImageView).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        initViews();
        initPicFragments();
        picViewPager.setAdapter(new PicFragmentPagerAdapter(getSupportFragmentManager(), picFragments));
        picViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
            }

            @Override
            public void onPageSelected(int i) {
                for (int j = 0; j < 3; ++j) {
                    if (j == i) {
                        int color = getResources().getColor(R.color.colorPrimary);
                        titleTextViews[j].setTextColor(color);
                        underlineViews[j].setBackgroundColor(color);
                    } else {
                        titleTextViews[j].setTextColor(Color.BLACK);
                        underlineViews[j].setBackgroundColor(Color.WHITE);
                    }
                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {
            }
        });
    }

    private void initViews() {
        titleTextViews = new TextView[]{findViewById(R.id.dakongyiTextView), findViewById(R.id.rixiangTextView), findViewById(R.id.conanTextView)};
        underlineViews = new View[]{findViewById(R.id.dakongyiUnderlineView), findViewById(R.id.rixiangUnderlineView), findViewById(R.id.conanUnderlineView)};
        picViewPager = findViewById(R.id.picViewPager);
    }

    private void initPicFragments() {
        picFragments = new ArrayList();
        for (int i = 0; i < 3; ++i) {
            picFragments.add(PicFragment.getInstance(i));
            final int finalI = i;
            titleTextViews[i].setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    picViewPager.setCurrentItem(finalI);
                }
            });
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/buyishi/p/9592870.html
今日推荐