Android 응용 프로그램 에서 ViewPager 를 이용 하여 다 중 페이지 슬라이딩 전환 효과 예시
위의 몇 가지 종 류 는 모두 안 드 로 이 드 슈퍼 port 가방 에서 제공 되 기 때문에 우 리 는 먼저 가방 을 추가 합 니 다.
Eclipse->Window->Android SDK Manager 에서 목록 에서 Extras->Android Support Library 를 선택 하여 설치 합 니 다.다운로드 가 끝 난 후 android-sdk\extras\android\support 디 렉 터 리 에서 v4 버 전 을 선택 하여 v4 디 렉 터 리 에 들 어가 android-support-v4.jar 파일 을 프로젝트 의 libs 디 렉 터 리(새로 만 들 지 않 았 다 면)로 복사 하면 됩 니 다.컴 파일 할 때 ADT 는 자동 으로 항목 을 가 져 옵 니 다.
2,새로운 ViewPager 의 layot,내용 은 다음 과 같 습 니 다
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<android.support.v4.view.PagerTabStrip
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
</LinearLayout>
ViewPager 는 layot 를 관리 하고 좌우 로 미 끄 러 지 며 각 페이지 의 데 이 터 를 표시 할 수 있 습 니 다.PagerTabStrip 은 페이지 title,android:layot 를 표시 합 니 다.gravity="top"은 title 이 상단 에 있 음 을 나타 내 며,bottom 등 을 설정 할 수 있 습 니 다.3.새 Fragment Activity 페이지
Fragment Activity 페이지 는 ViewPager 요 소 를 포함 하고 있 습 니 다.Fragment 를 표시 할 수 있 습 니 다.정 의 는 다음 과 같 습 니 다.
public class ViewPagerDemo extends FragmentActivity {
/** list **/
List<Fragment> fragmentList = new ArrayList<Fragment>();
/** title list **/
List<String> titleList = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager_demo);
ViewPager vp = (ViewPager)findViewById(R.id.viewPager);
fragmentList.add(new ViewPagerFragment1(" 1"));
fragmentList.add(new ViewPagerFragment1(" 2"));
fragmentList.add(new ViewPagerFragment1(" 3"));
titleList.add("title 1 ");
titleList.add("title 2 ");
titleList.add("title 3 ");
vp.setAdapter(new myPagerAdapter(getSupportFragmentManager(), fragmentList, titleList));
}
/**
*
*/
class myPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> titleList;
public myPagerAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> titleList){
super(fm);
this.fragmentList = fragmentList;
this.titleList = titleList;
}
/**
*
*/
@Override
public Fragment getItem(int arg0) {
return (fragmentList == null || fragmentList.size() == 0) ? null : fragmentList.get(arg0);
}
/**
* title
*/
@Override
public CharSequence getPageTitle(int position) {
return (titleList.size() > position) ? titleList.get(position) : "";
}
/**
*
*/
@Override
public int getCount() {
return fragmentList == null ? 0 : fragmentList.size();
}
}
}
이 중 my PagerAdapter 는 ragment PagerAdapter 를 통합 하여 ViewPager 에 데이터 원본 을 제공 합 니 다.onCreate 함 수 는 ViewPager 인 스 턴 스 를 받 고 데이터 원본 을 설정 합 니 다.getSupportFragment Manager 는 Fragment 관리 자 를 받 았 다 고 표시 합 니 다.ViewPager Fragment 1 은 구체 적 인 페이지 를 표시 합 니 다.아래 소 개 를 참조 하 십시오.
4.새 Fragment 페이지
Fragment 페이지 는 좌우 로 미끄러져 표시 할 페이지 입 니 다.새 클래스 는 Fragment 를 통합 하고 onCreateView 함 수 를 다시 쓰 면 됩 니 다.onCreateView 함 수 는 Activity 의 onCreate 함수 에 해당 합 니 다.다음 과 같다.
public class ViewPagerFragment1 extends Fragment {
private String text;
private TextView tv = null;
public ViewPagerFragment1(String text){
super();
this.text = text;
}
/**
* , inflater inflate view
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.view_pager_fragment_demo1, container, false);
tv = (TextView)v.findViewById(R.id.viewPagerText);
tv.setText(text);
return v;
}
}
5.예시 공정 코드:
package cn.trinea.android.demo;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
public class ViewPagerDemo extends BaseFragmentActivity {
private static int TOTAL_COUNT = 3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState, R.layout.view_pager_demo);
ViewPager vp = (ViewPager)findViewById(R.id.view_pager);
List<Fragment> fragmentList = new ArrayList<Fragment>();
List<String> titleList = new ArrayList<String>();
for (int i = 0; i < TOTAL_COUNT; i++) {
ViewPagerFragment viewPagerFragment1 = new ViewPagerFragment();
Bundle bundle = new Bundle();
bundle.putInt("upImageId", 0);
bundle.putString("text", "Page " + i);
viewPagerFragment1.setArguments(bundle);
titleList.add("title " + i);
fragmentList.add(viewPagerFragment1);
}
vp.setAdapter(new myPagerAdapter(getSupportFragmentManager(), fragmentList, titleList));
}
class myPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
private List<String> titleList;
public myPagerAdapter(FragmentManager fm, List<Fragment> fragmentList, List<String> titleList) {
super(fm);
this.fragmentList = fragmentList;
this.titleList = titleList;
}
@Override
public Fragment getItem(int arg0) {
return (fragmentList == null || fragmentList.size() == 0) ? null : fragmentList.get(arg0);
}
@Override
public CharSequence getPageTitle(int position) {
return (titleList.size() > position) ? titleList.get(position) : "";
}
@Override
public int getCount() {
return fragmentList == null ? 0 : fragmentList.size();
}
}
}
간단 한 효 과 는 다음 과 같다.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android ViewPager로 무한 스크롤 가능조금 조사해 보았더니, 라고 하는 기사가 돈피샤였습니다. 영어 기사라고 하는 것과, 데이터의 갱신에 대해서는 접하고 있지 않다(조금 유스 케이스가 다르다), 라고 하는 것으로 여기에 정리해 보겠습니다. ViewPag...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.