Android 앱 에 서 는 ViewPager 와 ViewPager 표시 기 를 사용 하여 Tab 탭 을 만 듭 니 다.

18284 단어 AndroidViewPager
1.ViewPageIndicator 오픈 소스 프레임 워 크 의 기본 용법
우 리 는 먼저 Github 에 가서 이 라 이브 러 리 를 다운로드 하고 주 소 를 다운로드 해 야 한다.https://github.com/JakeWharton/Android-ViewPagerIndicator다운로드 한 후에 예 를 들 어 우리 가 어떤 효 과 를 필요 로 하 는 지 보고 이 를 바탕 으로 우리 가 원 하 는 효과 로 바 꿀 수 있 습 니 다.
1.오픈 소스 프레임 워 크 사용 방법
STEP 1:improt library 프로젝트
두 번 째 단계:library 를 우리 가 새로 만 든 항목 에 가 져 옵 니 다.
Github 에서 이 zip 패 키 지 를 다운로드 하면 라 이브 러 리 파일 이 하나 있 습 니 다.라 이브 러 리 프로젝트 이 고 또 하나의 sample 이 있 습 니 다.작가 가 제공 하 는 예 입 니 다.(sample 프로젝트 import 를 작성 자가 제공 하 는 다양한 스타일 의 Indicator 를 볼 수 있 습 니 다.참고 로)작가 의 예 를 바탕 으로 자체 적 으로 스타일 을 개발 하려 면 library 프로젝트 import 를 Eclipse(library 는 라 이브 러 리 프로젝트 이 므 로 우 리 는 이 를 우리 프로젝트 의 의존 라 이브 러 리 로 사용 해 야 합 니 다).그리고 새 프로젝트 를 만 듭 니 다.새 프로젝트 libs 디 렉 터 리 아래 에 android-support-v4.jar 가 있 습 니 다.이것 은 삭제 해 야 합 니 다.ViewPageIndicator 에 이 라 이브 러 리 가 있 기 때문에 우리 프로젝트 에 두 개의 android-support-v4.jar 를 허용 하지 않 습 니 다.우리 프로젝트 를 삭제 하지 않 으 면 컴 파일 할 수 없습니다.오른쪽 키 항목―Properties―Android 옵션 카드―Add―library 라 이브 러 리 프로젝트―OK 를 선택 하여 가 져 왔 습 니 다.
2.MainActivity 레이아웃
레이아웃 에 하나의 ViewPager,하나의 ViewPager Indicator 만 있 습 니 다.(이 예 는 ViewPager Indicator:TabPager Indicator 를 사용 합 니 다)
ViewPager 의 위 나 아래 에 가 까 워 야 하 며,어쨌든 함께 붙 어야 합 니 다.

<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:orientation="vertical" >

 <com.viewpagerindicator.TabPageIndicator
  android:id="@+id/indicator"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="@drawable/base_action_bar_bg" >
 </com.viewpagerindicator.TabPageIndicator>

 <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.ViewPager>

</LinearLayout>

3.MainActivity 코드
STEP 1:ViewPager 를 예화 하여 ViewPager 에 Adapter 를 설정 합 니 다.
STEP 2:TabPageIndicator,TabPageIndicator 와 ViewPager 를 예화 합 니 다.
STEP 3:Indicator 에 OnPager Change Listner 모니터 설정
4 단계:어댑터 정의(FragmentPagerAdapter 계승)
먼저 ViewPager 를 예화 한 다음 에 TabPageIndicator 를 예화 한 다음 에 TabPageIndicator 와 ViewPager 의 연결 을 설정 합 니 다.바로 TabPageIndicator 의 setViewPager(ViewPager view)방법 을 호출 하 는 것 입 니 다.이렇게 하면 위의 Tab 을 클릭 하고 아래 의 ViewPager 전환 을 실현 합 니 다.View Pager 를 미 끄 러 뜨리 고 위의 Tab 을 따라 전환 합 니 다.
ViewPager 의 모든 아 이 템 은 Fragment 를 사용 합 니 다.Fragment 를 사용 하면 레이아웃 을 더욱 유연 하 게 할 수 있 습 니 다.Fragment 를 많이 사용 하 는 것 을 권장 합 니 다.
감청 을 설정 할 때 는 Indicator 가 제공 하 는 OnPager Change Listener 방법 을 사용 해 야 합 니 다.

public class MainActivity extends FragmentActivity { 
 /** 
  * Tab   
  */ 
 private static final String[] TITLE = new String[] { "  ", "  ", "   ", "  ", 
              "  ", "  ", "  ", "  " }; 

 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 

  //   ViewPager,    ViewPager  Adapter 
  ViewPager pager = (ViewPager)findViewById(R.id.pager); 
  FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager()); 
  pager.setAdapter(adapter); 

  //   TabPageIndicator,   ViewPager    (    ) 
  TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator); 
  indicator.setViewPager(pager); 

  //       ViewPager    Fragment   (      ),  OnPageChangeListener         ,              ViewPager  ,     Indicator ,
  indicator.setOnPageChangeListener(new OnPageChangeListener() { 

   @Override 
   public void onPageSelected(int arg0) { 
    Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show(); 
   } 

   @Override 
   public void onPageScrolled(int arg0, float arg1, int arg2) { 

   } 

   @Override 
   public void onPageScrollStateChanged(int arg0) { 

   } 
  }); 

 } 

 /** 
  *   ViewPager     
  */ 
 class TabPageIndicatorAdapter extends FragmentPagerAdapter { 
  public TabPageIndicatorAdapter(FragmentManager fm) { 
   super(fm); 
  } 

  @Override 
  public Fragment getItem(int position) { 
   //    Fragment   ViewPager item   ,      
   Fragment fragment = new ItemFragment(); 
   Bundle args = new Bundle(); 
   args.putString("arg", TITLE[position]); 
   fragment.setArguments(args); 

   return fragment; 
  } 

  @Override 
  public CharSequence getPageTitle(int position) { 
   return TITLE[position % TITLE.length]; 
  } 

  @Override 
  public int getCount() { 
   return TITLE.length; 
  } 
 } 
}

4.ViewPager 의 모든 Item 코드 를 정의 합 니 다(각각 Fragment)
이 예 는 하나의 Fragment 만 정의 하고 R.layot.fragment 는 하나의 TextView 만 정의 합 니 다.이 Fragment 코드 에 서 는 Bundle 을 통 해 Key-value 데 이 터 를 전달 하고 내용 은 문자열 하나 입 니 다.실제 개발 할 때 각 ViewPager 의 item 에 대해 서로 다른 Fragment 의 레이아웃,코드 내용 등 을 디자인 해 야 합 니 다.이 코드 는 시범 만 한다.

public class ItemFragment extends Fragment {

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {

  //        ,       find TextView  
  View contextView = inflater.inflate(R.layout.fragment_item, container, false);
  TextView mTextView = (TextView) contextView.findViewById(R.id.textview);

  //  Activity       
  Bundle mBundle = getArguments();
  String title = mBundle.getString("arg");

  mTextView.setText(title);

  return contextView;
 }

 @Override
 public void onActivityCreated(Bundle savedInstanceState) {
  super.onActivityCreated(savedInstanceState);
 } 
}

5.Indicator 스타일 수정
1 단계:values/styles 에

좋은 웹페이지 즐겨찾기