Viewpager 쉽게 만들어 보자
구성은 MainActivity 하나에 Fragment 3개, 그리고 PagerAdapter을 생성합니다.
프로젝트를 BlankActivity로 하나 생성합니다.
1. gradle의 dependencies에 코드를 추가합니다.
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:25.2.0'
}
2. TabFragment1, TabFragment2, TabFragment3 으로 Fragment를 3개 생성합니다.
각각의 Fragment는 화면 전환이 되면 알아볼 수 있게 TextView 등을 추가합니다.
3. MainActivity에 다음과 같이 작성합니다.
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Adding Toolbar to the activity
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// Initializing the TabLayout
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.addTab(tabLayout.newTab().setText("First"));
tabLayout.addTab(tabLayout.newTab().setText("Second"));
tabLayout.addTab(tabLayout.newTab().setText("Third"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
// Initializing ViewPager
viewPager = (ViewPager) findViewById(R.id.pager);
// Creating TabPagerAdapter adapter
TabPagerAdapter pagerAdapter = new TabPagerAdapter(getSupportFragmentManager(),
tabLayout.getTabCount());
viewPager.setAdapter(pagerAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
// Set TabSelectedListener
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
4. TabPagerAdapter.class 파일을 하나 생성 한 뒤에 다음과 같이 작성합니다.
public class TabPagerAdapter extends FragmentStatePagerAdapter {
// Count number of tabs
private int tabCount;
public TabPagerAdapter(FragmentManager fm, int tabCount) {
super(fm);
this.tabCount = tabCount;
}
@Override
public Fragment getItem(int position) {
// Returning the current tabs
switch (position) {
case 0:
TabFragment1 tabFragment1 = new TabFragment1();
return tabFragment1;
case 1:
TabFragment2 tabFragment2 = new TabFragment2();
return tabFragment2;
case 2:
TabFragment3 tabFragment3 = new TabFragment3();
return tabFragment3;
default:
return null;
}
}
@Override
public int getCount() {
return tabCount;
}
}
5. 빌드해서 확인하면 탭을 클릭해서도 화면 이동이 되고, 쓸어 넘겨서도 화면 이동이 가능하다.
'프로그래밍 > Android' 카테고리의 다른 글
탭(Tab) 쉽게 만들어 보자 (2) | 2017.05.19 |
---|---|
AsyncTask 쉬운 따라하기 (0) | 2017.05.15 |
Retrofit 단순 예제 (0) | 2017.05.11 |
Preference (0) | 2017.05.08 |
리스트뷰 아이템 내용 가져오기 (0) | 2017.03.21 |