ページが1つしかないポケットベルの表示:
これは2021年です-2月、Alhamdulillah、viewPagerで1ページしか追加できませんでした。アプローチは: ViewPager
、、、、FragmentPagerAdapter
およびTablayout
ですfragment
。私の場合、多くの人Pages
に多くのtabs
人Page
を住まわせることができTab
ます。1つのタブと1つのページを左または右にスワイプすると、ドキュメントの章を変更できます(次に表示したい)。そして、多くのページと多くのタブがあるとき、私はドキュメントの本全体を変更することができます。
メインのアクティビティOncreate:(これが私の作業コードのアプローチです。ここでは私の作業コードから何も変更していません):
if(getIntent()!=null){
if(getIntent().getStringExtra("ONLY_TAFHEEM")!=null)
sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager(), suraName, suraId, ayatId, true);
else
sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager(), suraName, suraId, ayatId, false);
}else {
sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager(), suraName, suraId, ayatId, false);
}
final ViewPager viewPager = findViewById(R.id.view_pager);
viewPager.setAdapter(sectionsPagerAdapter);
tabsLayout = findViewById(R.id.tabs);
tabsLayout.animate();
tabsLayout.setupWithViewPager(viewPager);
アダプター内:
@NonNull
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.sendData(mContext, postion, suraName, suraId, ayahId, ARABIC_AYAH, BENGALI_AYAH, actualDbNames[position], tafsirDisplayNames[position]);
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tafsirDisplayNames[position];
}
@Override
public int getCount() {
// this is the tricky part // Show pages according to array length. // this may only one // this is the tricky part :
return tafsirDisplayNames.length;
}
そしてついにフラグメントパブリックコンストラクター:
public static PlaceholderFragment sendData(Context mContext, int tabIndex, String suraName, String suraId, String ayahNumber, String arabicAyah, String bengaliAyah, String actualDbName, String displayDbName) {
Log.i("PlaceHolder", "Tafhim sendData: " + bengaliAyah);
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle bundle = new Bundle();
mContext_ = mContext;
BENGALI_AYAH = bengaliAyah;
_DISPLAY_DB_NAME = displayDbName;
bundle.putInt(ARG_SECTION_NUMBER, tabIndex);
bundle.putString(SURA_NAME, suraName);
bundle.putString(SURA_ID, suraId);
bundle.putString(AYAH_NUMBER, ayahNumber);
bundle.putString(ARABIC_AYAH, arabicAyah);
bundle.putString(ACTUAL_DB_NAME, actualDbName);
bundle.putString(DISPLAY_DB_NAME, displayDbName);
fragment.setArguments(bundle);
return fragment;
}
以上で、(タブラベルの)配列をアダプターに渡すだけで(1ページの場合は1つの要素のみになる可能性があります)、必要に応じて1ページ以上を入力できます。これに応じて入力します。 1つのタブまたは複数のタブ:上記のコードでは、配列は:tafsirDisplayNames
です。アダプターが最初に呼び出されたときに、アダプターで配列を手動で作成することもできます。または、MainActivityを再作成するときに、+要素を使用して配列を再作成します。
それ、すべて、アルハムドゥリッラー、ハッピーコーディング.......。