ViewPager 사용 예제

|

안드로이드 ViewPager를 활용하는 간단한 예제 코드입니다.


Layout 코드

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

  <android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.view.PagerTitleStrip
      android:id="@+id/pager_title_strip"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:paddingBottom="8dp"
      android:paddingTop="8dp"/>

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

</RelativeLayout>


그리고 Java 코드는 다음과 같습니다. 이번 예제 코드는 Fragment에서 ViewPager를 사용할 경우의 코드인데, Activity에서 사용할 경우에도 큰 차이는 없습니다.

Java 코드

package com.lnc.prototype.ui.main;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.lnc.prototype.R;

public class LocationDataFragment extends Fragment {

  private ViewPager mViewPager;
  private ViewPagerAdapter mViewPagerAdapter;

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
      Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_location_data,
        container, false);

    mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
    mViewPagerAdapter = new ViewPagerAdapter(getFragmentManager());
    mViewPager.setAdapter(mViewPagerAdapter);

    return view;
  }


  private class ViewPagerAdapter extends FragmentStatePagerAdapter {

    public ViewPagerAdapter(FragmentManager fm) {
      super(fm);
    }

    @Override
    public int getCount() {
      return 2;
    }

    @Override
    public Fragment getItem(int position) {
      Fragment fragment = null;
      switch(position) {
        case 0:
          fragment = new BeaconRadarFragment();
          break;

        case 1:
          fragment = new LocationHistoryFragment();
          break;
      }
      return fragment;
    }

    @Override
    public CharSequence getPageTitle(int position) {
      switch(position) {
        case 0:
          return "Beacon Radar";
        case 1:
          return "Location History";
      }

      return super.getPageTitle(position);
    }
  }

  ;
}