ViewPager 관련 노트

단계만 있음, 대체
ViewPager-PagerAdapter
레이아웃 컨트롤
activity의 레이아웃 파일에 컨트롤을 추가합니다. 컨트롤 이름은:android입니다.support.v4.view.ViewPager에는 두 개의 하위 컨트롤이 있습니다:android.support.v4.view.Pager Title Strip (tab 제목 위에 있지만 페이지의 좌우로 스크롤해서 전환하는 방법을 몰라서 이 컨트롤을 잠시 사용할 수 없습니다) android.support.v4.view.PagerTabStrip (각tab 페이지의 제목은 페이지의 좌우에 따라 스크롤됩니다)
또한 각 페이지의 레이아웃 파일도 있는데, 평상시의 페이지 쓰기 방법과 마찬가지로, 말하지 않겠다
컨트롤 대상 가져오기 및 조작
activity에서findViewById()를 사용하여 컨트롤을 얻는 대상은 PagerTitleStrip이 어떻게 자동으로 전환되는지 모르기 때문에 이 컨트롤을 잠시 사용하지 않습니다. 또한 PagerTabStrip도 PagerTabStrip의 대상을 얻기에 충분합니다. 그 방법으로 tab 제목 표시기의 스타일을 설정하여 ViewPager의 대상을 얻을 수 있습니다. 주로 setAdapter() 방법을 사용합니다.
개별 페이지 생성
Layout Inflater 대상의 inflate () 방법을 사용하여 각 페이지의 레이아웃 파일을 불러오고 각 페이지View 유형의 대상을 얻은 다음 얻은 페이지 대상을 하나ArrayList<View>에 넣는다. 다음에 데이터를 어댑터에 제공하면 각 페이지의tab 제목을 하나ArrayList<String>에 넣고 어댑터에도 제공한다.
어댑터
클래스 상속 PagerAdapter를 쓰고 주로 PagerAdapter를 다시 쓰는 방법은 다음과 같습니다.
//      
@Override
public int getCount() {
    // TODO Auto-generated method stub

    return myListViews.size();
}

//       ,      ,      
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
    // TODO Auto-generated method stub
    return arg0==arg1;
}

//       ,            
//            (    ),           
//myListViews      ArrayList<View>,    View        
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // TODO Auto-generated method stub
    container.addView(myListViews.get(position));
    return myListViews.get(position);
}

//  、    
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    // TODO Auto-generated method stub
    container.removeView(myListViews.get(position));
}

//              
//myListPagerTabs      ArrayList<String>,      String       
@Override
public CharSequence getPageTitle(int position) {
    // TODO Auto-generated method stub
    return myListPagerTabs.get(position);
}

어댑터 클래스를 작성한 후 ViewPager 대상의 setadapter () 방법으로 귀속할 수 있습니다
ViewPager-FragmentPagerAdapter
기본적으로 ViewPager+PagerAdapter와 마찬가지로 몇 개의fragment 클래스와 대응하는 페이지의 레이아웃 파일을 써야 한다. 각 페이지는fragment이다. 이것들은fragment에 관한 지식을 배우면 알 수 있다.
다른 점: 1. 위의ArrayList<Fragment>, 안에 저장된 것이 바로 당신이 쓴 fragment의 대상입니다. 2. 부류 Fragment Pager Adapter를 다시 쓰는 구체적인 방법
//            
@Override
public Fragment getItem(int arg0) {
    // TODO Auto-generated method stub
    return myListViews.get(arg0);
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return myListViews.size();
}

@Override
public CharSequence getPageTitle(int position) {
    // TODO Auto-generated method stub
    return myListTabs.get(position);
}

좋은 웹페이지 즐겨찾기