메인 액티비티에서 레이아웃에 만들었던 뷰페이저와 페이저 어댑터를 연결시켜주고, 탭 레이아웃과 뷰 페이저를 연결시켜준다. 또, 메인 액티비티는 ItemFragment 클래스를 상속받는다. 처음 ItemFragment를 implements 시키면 빨간 줄이 그이면서 오류가 발생하는데, 이 부분에서 alt+enter를 눌러 필요한 코드를 오버 라이딩시켜주면 된다.
onListFragmentInteraction()은 아이템 리스트를 클릭했을 때 발생하는 이벤트를 지정해주는 역할을 한다.
2. MyPagerAdapter.java
package com.example.myslideex;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import java.util.ArrayList;
public class MyPagerAdapter extends FragmentPagerAdapter {
private ArrayList<Fragment> mData;
String[] tabname = {"왼쪽탭","가운데", "오른쪽탭"};
public MyPagerAdapter(@NonNull FragmentManager fm) {
super(fm);
mData = new ArrayList<>();
mData.add(new ColorFragment());
mData.add(new ItemFragment());
mData.add(new BlankFragment());
}
@NonNull
@Override
public Fragment getItem(int position) {
return mData.get(position);
}
@Override
public int getCount() {
return mData.size();
}
// TapLayout 이름 지정
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabname[position];
//return position + " 번째";
}
}
페이저어댑터에서 각 프래그먼트와 뷰 페이저, 탭 레이아웃을 연결시켜준다. 데이터를 연결시킨 후 앱을 실행해 화면을 움직여보면 탭과 뷰 페이저가 연결되어 함께 움직이는 것을 확인할 수 있다.
CharSequence는 아래 사진처럼 오버라이딩 해서 사용하면 필요한 코드를 자동 완성시켜 쓸 수 있다.
3. 여러 프래그먼트들
프래그먼트의 자바소스는 아래 그림처럼 추가해주면 된다. 이번 프로젝트에서는 프래그먼트를 연결하는 정도로만 했기 때문에 프래그먼트의 내부 소스는 다루지 않았다. 프로젝트에는 Fragment(Blank)와 Fragment(List)를 추가해주었다.