Android 는 ViewPager 를 사용 하여 내 비게 이 션 을 실현 합 니 다.
ViewPager 의 XML 파일 에서 의 성명 은 다른 컨트롤 러 들 의 성명 과 조금 다 릅 니 다.
한편,android.support.v4.view 는 안 드 로 이 드 인터페이스 특수 효과 의 제3자 가 불 러 온 jar 패키지 로 아래로 호 환 할 수 있 습 니 다.
<android.support.v4.view.ViewPager
...
...
>
</android.support.v4.view.ViewPager>
표 시 된 페이지 카드 불 러 오기:layot 레이아웃 파일 을 View 대상 으로 변환 해 야 합 니 다.
(1)
LayoutInflater lf = getLayoutInfalter().from(this);
lf.inflate(resource,root);
(2)
View.inflate(context,resource,root);
PagerTabStrip PagerTitleStrip
이름 을 봐 도 알 수 있 습 니 다.이 두 사람 은 위 챗 메 인 화면 밑 에 표 시 된 디 렉 터 리(위 챗,주소록,발견,나)처럼 사용자 가 미 끄 러 진 페이지 타이틀 을 탐색 할 수 있 습 니 다.
<android.support.v4.view.ViewPager
...
>
<android.support.v4.view.PagerTabStrip
...
...
>
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
<!-- PagerTitleStrip PagerTabTitle , ViewPager -->
일반적으로 사용 시 둘 중 하 나 를 취하 면 되 며,둘 을 동시에 사용 하면 PagerTabStrip 이 효력 을 상실 합 니 다.물론 PagerTabStrip 과 PagerTitleStrip 도 일부 속성 을 설정 하여 네 비게 이 션 디 렉 터 리 를 미화 합 니 다.
private PagerTabStrip tabStrip;
tabStrip = (PagerTabStrip) findViewById(R.id.tabStrip);
tabStrip.setBackgroundColor(Color.GRAY);
tabStrip.setTextColor(Color.BLACK);
tabStrip.setDrawFullUnderline(false);
tabStrip.setTabIndicatorColor(Color.GREEN);
ViewPager 에 대응 하 는 세 가지 서로 다른 어댑터 가 있 고 대응 하 는 데이터 원본 도 다르다.(1)PagerAdapter ---- 데이터 원본:List
package com.Liuyt.s03_e19_viewpager;
import java.util.List;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
public class MyPagerAdapter extends PagerAdapter {
private List<View> viewList;
private List<String> titleList;
public MyPagerAdapter(List<View> viewList, List<String> titleList) {
this.viewList = viewList;
this.titleList = titleList;
}
/*
*
*/
@Override
public int getCount() {
// TODO Auto-generated method stub
return viewList.size();
}
/*
* View Object
*/
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
/*
*
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
container.addView(viewList.get(position));
return viewList.get(position);
}
/*
*
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView(viewList.get(position));
}
/*
* viewPager
*/
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titleList.get(position);
}
}
(2)FragmentPagerAdapter----데이터 원본:List
package com.Liuyt.s03_e19_viewpager;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyFragmentPagerAdapter extends FragmentPagerAdapter{
private List<Fragment>fragList;
private List<String>titleList;
public MyFragmentPagerAdapter(FragmentManager fm,List<Fragment>fragList,List<String>titleList) {
super(fm);
// TODO Auto-generated constructor stub
this.fragList = fragList;
this.titleList = titleList;
}
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return fragList.get(arg0);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return fragList.size();
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titleList.get(position);
}
}
(3)FragmentStatePagerAdapter----데이터 원본:List여 기 는 코드 를 붙 이지 않 습 니 다.Fragment StatePagerAdapter 의 코드 와 Fragment PagerAdapter 의 코드 차이 가 많 지 않 습 니 다.두 가지 차 이 는 미 끄 러 진 후에 destroy 방법 으로 페이지 카드 를 없 애 는 것 이 고 다른 하 나 는 페이지 카드 를 없 애 지 않 습 니 다.
마지막 으로 모니터 입 니 다.ViewPager 는 OnPager Change Listener 모니터 를 사용 하여 미 끄 러 진 페이지 를 감청 합 니 다.중간 에 자주 사용 되 는 방법 은 Public void onPager Selected(int arg 0){}입 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.