{"id":968,"date":"2017-03-18T17:04:44","date_gmt":"2017-03-18T09:04:44","guid":{"rendered":"http:\/\/www.yusian.com\/blog\/?p=968"},"modified":"2017-03-18T17:04:44","modified_gmt":"2017-03-18T09:04:44","slug":"android%e5%9f%ba%e7%a1%80%e6%8e%a7%e4%bb%b6%e4%b9%8bviewpager%e7%9a%84%e4%bd%bf%e7%94%a8","status":"publish","type":"post","link":"https:\/\/www.yusian.com\/blog\/android\/2017\/03\/18\/170444968.html","title":{"rendered":"Android\u57fa\u7840\u63a7\u4ef6\u4e4bViewPager\u7684\u4f7f\u7528"},"content":{"rendered":"<p>1\u3001\u7b80\u5355\u4e00\u70b9\u7406\u89e3\uff0cViewPager\u5c31\u662f\u6211\u4eec\u7ecf\u5e38\u80fd\u770b\u5230\u7684\u201c\u8f6e\u64ad\u201d\u63a7\u4ef6\uff1b<br \/>\n2\u3001ViewPager\u7684\u4f7f\u7528\u5206\u4e3a\u4e24\u4e2a\u90e8\u5206\uff1a\u89c6\u56fe\u548c\u9002\u914d\u5668\uff0c\u7c7b\u4f3ciOS\u4e2d\u7684View\u548cDataSource\uff1b<br \/>\n3\u3001\u6bd4\u5982\u6211\u4eec\u65b0\u5efa3\u4e2axml\u6587\u4ef6\uff0c\u91cc\u9762\u4ec0\u4e48\u90fd\u6ca1\u6709\uff0c\u53ea\u662f\u80cc\u666f\u8272\u4e0d\u540c\uff1a\u7ea2\u3001\u7eff\u3001\u84dd\uff1b<br \/>\n4\u3001ViewPager\u76f8\u5bf9\u5e94\u7684\u9002\u914d\u5668\u53ebPagerAdaper,\u521b\u5efa\u4e00\u4e2aPagerAdaper\u7684\u5b50\u7c7b\uff1b<br \/>\n5\u3001PagerAdaper\u662f\u4e00\u4e2a\u62bd\u8c61\u7c7b\uff0c\u5b9e\u73b04\u4e2a\u65b9\u6cd5getCount()\u3001isViewFromObject()\u3001instantiateItem()\u3001destroyItem()\uff1b<br \/>\n6\u3001\u4e8b\u4ef6\u76d1\u542c\u5219\u901a\u8fc7addOnPageChangeListener()\u6765\u5b9e\u73b0\uff0c\u7c7b\u4f3ciOS\u4e2d\u7684Delegate\uff1b<br \/>\n7\u3001\u5173\u952e\u4ee3\u7801\uff1a<\/p>\n<pre line=\"1\" lang=\"java\">package com.yusian.viewpager;\n\nimport android.support.v4.view.PagerAdapter;\nimport android.support.v4.view.ViewPager;\nimport android.support.v7.app.AppCompatActivity;\nimport android.os.Bundle;\nimport android.view.LayoutInflater;\nimport android.view.View;\nimport android.view.ViewGroup;\n\nimport java.util.ArrayList;\n\npublic class MainActivity extends AppCompatActivity {\n    private ViewPager viewPager;\n    private ArrayList<View> viewArray;\n    @Override\n    protected void onCreate(Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.activity_main);\n\n        viewPager = (ViewPager)findViewById(R.id.vp_main);\n        \/\/ \u6570\u636e\n        viewArray = new ArrayList();\n        viewArray.add(LayoutInflater.from(this).inflate(R.layout.viewpage_one, null));\n        viewArray.add(LayoutInflater.from(this).inflate(R.layout.viewpage_two, null));\n        viewArray.add(LayoutInflater.from(this).inflate(R.layout.viewpage_thr, null));\n        \/\/ \u6570\u636e\u6e90\u65b9\u6cd5\n        viewPager.setAdapter(new PagerAdapter() {\n            @Override\n            public int getCount() {\n                return viewArray.size();\n            }\n\n            @Override\n            public boolean isViewFromObject(View view, Object object) {\n                return view == object;\n            }\n\n            @Override\n            public Object instantiateItem(ViewGroup container, int position) {\n                View view = viewArray.get(position);\n                container.addView(view);\n                return view;\n            }\n\n            @Override\n            public void destroyItem(ViewGroup container, int position, Object object) {\n                container.removeView(viewArray.get(position));\n            }\n\n        });\n        \/\/ \u8bbe\u7f6e\u76d1\u542c\u65b9\u6cd5\n        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {\n            @Override\n            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {\n                System.out.println(position + \"---\" + positionOffset + \"---\" + positionOffsetPixels);\n            }\n\n            @Override\n            public void onPageSelected(int position) {\n                System.out.println(position);\n            }\n\n            @Override\n            public void onPageScrollStateChanged(int state) {\n                System.out.println(\"--->\"+state);\n            }\n        });\n    }\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001\u7b80\u5355\u4e00\u70b9\u7406\u89e3\uff0cViewPager\u5c31\u662f\u6211\u4eec\u7ecf\u5e38\u80fd\u770b\u5230\u7684\u201c\u8f6e\u64ad\u201d\u63a7\u4ef6\uff1b 2\u3001ViewPager\u7684\u4f7f\u7528\u5206\u4e3a\u4e24\u4e2a\u90e8\u5206\uff1a\u89c6\u56fe\u548c\u9002\u914d\u5668\uff0c\u7c7b\u4f3ciOS\u4e2d\u7684View\u548cDataSource\uff1b 3\u3001\u6bd4\u5982\u6211\u4eec\u65b0\u5efa3\u4e2axml\u6587\u4ef6\uff0c\u91cc\u9762\u4ec0\u4e48\u90fd\u6ca1\u6709\uff0c\u53ea\u662f\u80cc\u666f\u8272\u4e0d\u540c\uff1a\u7ea2\u3001\u7eff\u3001\u84dd\uff1b 4\u3001ViewPager\u76f8\u5bf9\u5e94\u7684\u9002\u914d\u5668\u53ebPagerAdaper,\u521b\u5efa\u4e00\u4e2aPagerAdaper\u7684\u5b50\u7c7b\uff1b 5\u3001PagerAdaper\u662f\u4e00\u4e2a\u62bd\u8c61\u7c7b\uff0c\u5b9e\u73b04\u4e2a\u65b9\u6cd5getCount()\u3001isViewFromObject()\u3001instantiateItem()\u3001destroyItem()\uff1b 6\u3001\u4e8b\u4ef6\u76d1\u542c\u5219\u901a\u8fc7addOnPageChangeListener()\u6765\u5b9e\u73b0\uff0c\u7c7b\u4f3ciOS\u4e2d\u7684Delegate\uff1b 7\u3001\u5173\u952e\u4ee3\u7801\uff1a package com.yusian.viewpager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private ArrayList viewArray; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager)findViewById(R.id.vp_main); \/\/ \u6570\u636e viewArray = new ArrayList(); viewArray.add(LayoutInflater.from(this).inflate(R.layout.viewpage_one, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30],"tags":[33],"class_list":["post-968","post","type-post","status-publish","format-standard","hentry","category-android","tag-33"],"_links":{"self":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/comments?post=968"}],"version-history":[{"count":0,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/posts\/968\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/media?parent=968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/categories?post=968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yusian.com\/blog\/wp-json\/wp\/v2\/tags?post=968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}