Androidが開発したViewPagerスライドページ効果実現(ソースコード共有)
4000 ワード
まずGoogleの公式ドキュメントでviewpagerについて紹介します.このクラスでは、ユーザーがページを通じて左右のデータを反転させることができ、PagerAdapterアダプタを実現することでビュー表示のページを生成する必要があります.このクラスが初期に設計され開発されたことに注意してください.APIは変更され、後で互換ライブラリを更新する可能性があります.その時、対応する処理が必要です.ViewPagerはFragmentを組み合わせるのに最もよく使われています.これは各ページのライフサイクルを供給し、管理するのに便利な方法です.後のブログでは、関連する内容を紹介します.今日はviewpagerの機能を簡単に実現します.
MainActivityのコード
私の間でブログを閲覧したとき、30行目のコード設定タイトルの距離効果が実現していないという話がありましたが、なぜかデバッグしてみると、この値が設定すべき大きさであることがわかりました.私がここで設定したのは1000ページで1つのタイトルしか表示されない効果を実現しました.layoutレイアウトファイルの下で、まず3つの簡単なレイアウトファイルを作成して、スライド効果を実現しなければなりません.もちろん、最も重要なのはmainです.xmlのコード書き込み
MainActivityのコード
package com.example.f10_viewpager;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.PagerTabStrip;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class MainActivity extends Activity {
private View view1, view2, view3;//
private ViewPager viewPager;
private PagerTabStrip pagerTabStrip;
private List<View> viewList;// list
private List<String> titleList;// viewpager
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
viewPager = (ViewPager) findViewById(R.id.viewpager);
pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagertab);
pagerTabStrip.setDrawFullUnderline(false);//
pagerTabStrip.setTextSpacing(1000);//
initView();
MyAdapter pagerAdapter = new MyAdapter();
viewPager.setAdapter(pagerAdapter);
}
// ,
private void initView() {
view1 = findViewById(R.layout.layout1);
view2 = findViewById(R.layout.layout2);
view3 = findViewById(R.layout.layout3);
viewList = new ArrayList<View>();// View
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
titleList = new ArrayList<String>();// Title
titleList.add(" ");
titleList.add(" ");
titleList.add(" ");
}
public class MyAdapter extends PagerAdapter {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return viewList.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(viewList.get(position));
}
@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);
}
@Override
public CharSequence getPageTitle(int position) {
return titleList.get(position);
}
// ViewGroup
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));
return viewList.get(position);
}
};
}
私の間でブログを閲覧したとき、30行目のコード設定タイトルの距離効果が実現していないという話がありましたが、なぜかデバッグしてみると、この値が設定すべき大きさであることがわかりました.私がここで設定したのは1000ページで1つのタイトルしか表示されない効果を実現しました.layoutレイアウトファイルの下で、まず3つの簡単なレイアウトファイルを作成して、スライド効果を実現しなければなりません.もちろん、最も重要なのはmainです.xmlのコード書き込み
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_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:id="@+id/pagertab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
</android.support.v4.view.ViewPager>
</LinearLayout>