Android 는 TabLayou+fragment+viewpager 를 사용 하여 페이지 전환 효 과 를 슬라이딩 합 니 다.

TabLayou 는 주로 제목 헤더 의 미끄럼 을 실현 합 니 다.이 컨트롤 은 ScrollView 와 유사 합 니 다.
XML 레이아웃

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  >
  <android.support.design.widget.TabLayout
   android:id="@+id/homefragment_tablelayouts"
   android:layout_width="0dp"
   android:layout_height="30dp"
   app:tabIndicatorHeight="2dp"
   android:layout_weight="1"
   app:tabIndicatorColor="@color/colorred"
   app:tabSelectedTextColor="#000000"
   app:tabMode="scrollable"
   >
  </android.support.design.widget.TabLayout>
  <ImageView
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:src="@drawable/add_channel_titlbar_new"
   />
 </LinearLayout>
 <android.support.v4.view.ViewPager
  android:layout_weight="1"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:id="@+id/homefragment_vp"
  ></android.support.v4.view.ViewPager>
다음은 코드 의 실현 이다.

//       
 public void getVpTitleData() {
 //    TabLayou   
  TabLayout mTabLayout= (TabLayout) getView().findViewById(R.id.homefragment_tablelayouts);
  //    ViewPager   
  ViewPager mViewPager= (ViewPager) getView().findViewById(R.id.homefragment_vp);
  //   title           data  
  listtitle = new ArrayList<>();
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  listtitle .add("  ");
  //   listtitle     title     TabLayou z 
  for (int i = 0; i <listtitle.size() ; i++) {
   mTabLayout.addTab(mTabLayout.newTab().setText(listtitle.get(i)));
  }
  //            Fragment
  listfragment = new ArrayList<>();
  for (int i = 0; i <date.size() ; i++) {
   BeiJingFragment mjingFragment = new BeiJingFragment();
   listfragment.add(mjingFragment);
  }
  HomeFragmentVPFragmentAdapter mAdapter = new HomeFragmentVPFragmentAdapter(getFragmentManager(),listfragment,listtitle);
  // ViewPager     
  mViewPager.setAdapter(mAdapter);
  // TabLayout ViewPager    。
  mTabLayout.setupWithViewPager(mViewPager);
  // TabLayout     
  mTabLayout.setTabsFromPagerAdapter(mAdapter);
 }
View Paper 와 Fragment 의 어댑터

public class HomeFragmentVPFragmentAdapter extends FragmentStatePagerAdapter {
 List<Fragment> listfragment;
 List<String> listtitle;
 public HomeFragmentVPFragmentAdapter(FragmentManager fm, List<Fragment> listfragment, List<String> listtitle) {
  super(fm);
  this.listfragment = listfragment;
  this.listtitle = listtitle;
 }
 @Override
 public CharSequence getPageTitle(int position) {
  return listtitle.get(position);
 }
 @Override
 public Fragment getItem(int position) {
  return listfragment.get(position);
 }
 @Override
 public int getCount() {
  return listfragment.size();
 }
}
这里写图片描述
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 가 TabLayou+fragment+viewpager 를 사용 하여 페이지 전환 효 과 를 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기