0
私はFragment
のページを追加したいと思いますが、私はどのように行うべきか分かりません。 ここに問題なく動作する単一のFragment
と私のコードadpaterです。ここだ私はAdapter
アダプターに複数のフラグメントを追加する必要がありますか?
私はFragment
のページを追加したいと思いますが、私はどのように行うべきか分かりません。 ここに問題なく動作する単一のFragment
と私のコードadpaterです。ここだ私はAdapter
アダプターに複数のフラグメントを追加する必要がありますか?
内の各ページタイトルについてそれぞれ異なるFragment
を追加するには助けてください は
class TabAdapter(fragmentManager: FragmentManager) : FragmentPagerAdapter(fragmentManager) {
override fun getItem(position: Int) = SampleFragment() //SampleFragment() is my fragment
override fun getCount() = 4
override fun getPageTitle(position: Int) = when (position) {
0 -> "Music"
1 -> "Market"
2 -> "Films"
else -> "Books"
}
}
あなたの助けに前もって感謝そして、これは私のSampleFragment()
class SampleFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
return inflater!!.inflate(R.layout.fragment_sample, container, false)
}
}
のコードですフラグメントを素早くアダプターに追加する方法。
表示するすべてのフラグメントを保持するには、ViewPagerが必要です。
まず、次のようにXMLを編集します。
<RelativeLayout
android:id="@+id/main_layout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context=".MainActivity">
<ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tab_layout" />
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:elevation="6dp"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
</RelativeLayout>
次の新しいフラグメントを作成し、Fragment_one.java
という名前を付けます。ここの中には、あなたが活動のようにしたいことを何でもすることができます。 Fragment_two.java
を作成し、必要な数だけ作成してアダプターでインスタンス化します。
次
public class fragmentAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public fragmentAdapter(FragmentManager fm, int NumOfTabs){
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
// Add as many fragment in this method
switch (position){
case 0:
Fragment_one frag_one = new Fragment_one();
return frag_one;
case 1:
Fragment_two frag_two = new Fragment_two();
return frag_two;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
次あなたMainActivity.java
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
//add as many fragments you want to add the "fragment 1" & "fragment 2" is
//the title for your fragments, it starts for '0','1','2'...
tabLayout.addTab(tabLayout.newTab().setText("fragment 1"));
tabLayout.addTab(tabLayout.newTab().setText("fragment 2"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final fragmentAdapter adapter = new Adapter(getActivity(),tablayout.geTabCount());
viewPager.setAdapter(adapter);
に
onCreate()
メソッドの中にこれを追加します(これは、カスタムアダプタ用です)
fragmentAdapter.Java
を作成し、これらのコードを追加します。