Fragment+ViewPager 파일럿

9584 단어 Android
좌우 교환으로 화면 교환하는 거.
직관적인 조작을 나도 매우 좋아해서 무의미하게 교환한다.
좋아하기 때문에 발전할 수 있고, 반드시 공부해야 한다.

컨디션


OS X 10.9.3
Android Studio (Beta) 0.8.0
Sony SOL25 Android 4.4.2(API 19)

ViewPager


ViewPager에서 어댑터를 사용하여 페이지를 표시된 데이터와 연결합니다.
사용할 수 있는 어댑터는 다음과 같은 3가지다.
  • PagerAdapter
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentPagerAdapter로 할게요.

    Fragment 작성


    표시할 부분을 적당히 만듭니다.3 드릴까요?자유롭다이번에는 세 번째를ListFragment로 삼았다.

    FragmentPagerAdapter 사용


    FragmentPagerAdapter


    FragmentPagerAdaptere에서 교환을 통해 Fragment를 전환할 때 각 Fragment에 대한 터치가 해제됩니다.메모리에 저장해야 하기 때문에 간단하게 다시 부착할 수 있을 것이다.이렇게 되면 onAttach()onCreate()는 매번 호출되지 않는다.
    생명주기에서 볼 수 있듯이 onCreateView()에서 호출된 것이기 때문에 상태를 보존하려면 onSavedInstanceState()로 상태를 보존하고 onActivityCreated()로 회복할 수 있다.

    FragmentStatePagerAdapter


    Fragment State Pager Adapter는 불필요한 웹 페이지 Fragment를 삭제하는 것이 아니라 삭제하는 Pager Adapter라고 합니다.
    대량의 페이지를 사용할 때도 메모리를 압박하지 않는다.이곳은 매우 적기 때문에 이쪽은 쓰지 않는다.

    방법의 실현


    실시해야 할 방법은 다음과 같은 두 가지가 있다.
  • Fragment getItem(int position)
  • int getCount()
  • getiItem 매개변수가 지정한 페이지에 표시된 Fragment 인스턴스를 반환합니다.getCount ViewPager 페이지 수를 반환합니다.
    코드는 이렇습니다.패키지, import은 사랑을 베는 것이다.
    TestFragmentPagerAdapter.java
    public class TestFragmentPagerAdapter extends FragmentPagerAdapter{
    
        public TestFragmentPagerAdapter(FragmentManager fm) {
            super(fm);
        }
    
        @Override
        public Fragment getItem(int position) {
            switch(position){
                case 0:
                    return new Fragment1();
                case 1:
                    return new Fragment2();
                default:
                    return new ItemListFragment();
            }
        }
    
        @Override
        public int getCount() {
            return 3;
        }
    
        @Override
        public CharSequence getPageTitle(int position) {
            return "Page " + (position+1);
        }
    }
    
    다시 쓰기 getPageTitle 에 페이지 제목을 설정했습니다.이것은 제목을 표시할 때의 옵션입니다.

    ViewPager 구성


    우선MainActivity에서viewParger를 설정합니다.그리고 제목도 보여줘야 돼요.옵션입니다.
    activity_main.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1">
            <android.support.v4.view.PagerTitleStrip
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:background="@drawable/border"
                android:textColor="#000000"
                android:paddingTop="10dp"
                android:paddingBottom="10dp"/>
        </android.support.v4.view.ViewPager>
    
    </LinearLayout>
    
    
    Fragment Manager를 사용하여 어댑터를 생성합니다.이런 느낌.
    MainActivity.java
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            FragmentManager manager = getFragmentManager();
    
            final ViewPager viewPager = (ViewPager)findViewById(R.id.pager);
    
            final TestFragmentPagerAdapter adapter =
                    new TestFragmentPagerAdapter(manager);
            viewPager.setAdapter(adapter);
        }
    
    }
    

    실행 확인


    제 실기(Sony SOL25)로 동작을 확인했습니다.

    응, 그래.

    끝말


    Github 프로젝트가 공개되었습니다.할애의 설명은 여기 보세요.당신의 지적과 건의를 받을 수 있다면 정말 다행입니다.

    참고 자료


    ViewPager | Android Developers
    화면을 가로로 전환하는 ViewPager 사용 방법 교환

    좋은 웹페이지 즐겨찾기