延續昨天已經建立完成的Fragment,並且完成內容的改動。
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Fragment01"
android:textAlignment="center"
android:textSize="50dp"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@+id/guideline2"
app:tabGravity="fill"
tools:ignore="MissingConstraints" />
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@id/tabs"
app:layout_constraintBottom_toTopOf="@id/guideline5"
tools:ignore="MissingConstraints" />
extends FragmentStatePagerAdapter
public class TestAdapter{
}
接著會對著程式碼點Alt
+Enter
會出現下方附圖,並點選implement methods
實施方法。
引入方法後會如同下方程式碼,接著還會要你在新增Constructor matching super
。
public class TestAdapter extends FragmentStatePagerAdapter {
@NonNull
@Override
public Fragment getItem (int position) {
return null;
}
@Override
public int getCount () {
return 0;
}
}
最後就會如同下方的程式碼
public class TestAdapter extends FragmentStatePagerAdapter {
public TestAdapter (@NonNull FragmentManager fm) {
super (fm);
}
public TestAdapter (@NonNull FragmentManager fm, int behavior) {
super (fm, behavior);
}
@NonNull
@Override
public Fragment getItem (int position) {
return null;
}
@Override
public int getCount () {
return 0;
}
}
新增方法並利用List儲存等等會寫入的文字
private final List<Fragment> mFragmentList = new ArrayList<> ();
private final List<String> mFragmentTitleList = new ArrayList<>();
//方法
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
@Override
public int getItemPosition(Object object) {
return PagerAdapter.POSITION_NONE;
}
//主程式
tabs = findViewById(R.id.tabs);
pager = findViewById(R.id.viewpager);
pagerAdapter = new ViewpagerAdapter(this.getSupportFragmentManager());
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
setupViewPager(pager);
tabs.setupWithViewPager(pager);
//副程式
//寫在主程式下方,功能是新增主題並在TabLayout上顯示,此功能是在Adapter所寫的功能。
public void setupViewPager(ViewPager viewPager) {
pagerAdapter.addFragment(new BlankFragment_Scene01 (), "Home");
pagerAdapter.addFragment(new BlankFragment_Scene02 (), "Shop");
pagerAdapter.addFragment(new BlankFragment_Scene03 (), "Setting");
viewPager.setAdapter(pagerAdapter);
}
第二張圖片用於展示滑動效果