2017-12-14 4 views
0

내 적응에 Fragment 페이지를 추가하고 싶지만 어떻게해야할지 모르겠다. 여기 내 코드 adpater 하나의 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) 
    } 

} 

나를 여기 Adapter

답변

0

각 PAGETITLE 각 다른 Fragment을 추가 도와주세요 어댑터에 조각을 빠르게 추가하는 방법.

표시하려는 모든 조각을 보관하려면 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를 생성하고이 코드를 추가
관련 문제