2

내 응용 프로그램은 5 개의 스 와이프 탭이있는 ViewPager를 사용합니다. 대형 기기와 가로 방향으로 앱을 실행할 때 내 ViewPager에서 2 조각 또는 2 탭 페이지를 펼치고 작은 기기 또는 세로보기에서 실행할 때 1 조각 또는 1 탭 페이지를 펼치고 싶습니다. 또한 ViewPager에서 단일 조각을 표시 할 때 일반적으로하는 것처럼 모든 탭을 스 와이프 할 수 있어야합니다.뷰 페이지에 2 개의 프래그먼트를 표시하는 방법

나는 초기화 조각 확장 내 CourseFragment 클래스에서 내 ViewPager을 팽창 :

ViewPager mViewPager = (ViewPager) getView().findViewById(
      R.id.pagerYear); 

    InfoTechPageAdapter infoTechPageAdapter = new InfoTechPageAdapter(
       getChildFragmentManager()); 
     mViewPager.setOffscreenPageLimit(5); 
     mViewPager.setAdapter(infoTechPageAdapter); 

내 InfoTechPageAdapter FragmentStatePagerAdapter를 확장 : PageAdapter 클래스의

package com.usjr.sss.adapter; 

import com.usjr.sss.fragment.InfoTechFirstYearFragment; 
import com.usjr.sss.fragment.InfoTechFourthYearFragment; 
import com.usjr.sss.fragment.InfoTechSecondYearFragment; 
import com.usjr.sss.fragment.InfoTechThirdYearFragment; 
import com.usjr.sss.fragment.SubmitSubjectFragment; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentStatePagerAdapter; 

public class InfoTechPageAdapter extends FragmentStatePagerAdapter { 

public InfoTechPageAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int pos) { 
    Fragment mFragment; 

    switch (pos) { 

    case 0: 
     mFragment = new InfoTechFirstYearFragment(); 
     mFragment.setArguments(null); 
     return mFragment; 
    case 1: 
     mFragment = new InfoTechSecondYearFragment(); 
     mFragment.setArguments(null); 
     return mFragment; 
    case 2: 
     mFragment = new InfoTechThirdYearFragment(); 
     mFragment.setArguments(null); 
     return mFragment; 
    case 3: 
     mFragment = new InfoTechFourthYearFragment(); 
     mFragment.setArguments(null); 
     return mFragment; 
    case 4: 
     mFragment = new SubmitSubjectFragment(); 
     mFragment.setArguments(null); 
     return mFragment; 

    default: 
     return null; 

    } 

}// end getItem 

@Override 
public int getCount() { 

    return 5; 
}// end getCount 

@Override 
public CharSequence getPageTitle(int pos) { 
    // Locale l = Locale.getDefault(); 
    switch (pos) { 
    case 0: 
     return "FIRST YEAR"; 
    case 1: 
     return "SECOND YEAR"; 
    case 2: 
     return "THIRD YEAR"; 
    case 3: 
     return "FOURTH YEAR"; 
    case 4: 
     return "SUBMIT"; 

    } 
    return null; 
} 

} 

답변

0

우선합니다.

@Override 
public float getPageWidth(int position) { 
return(0.5f); 
} 
관련 문제