ViewPager(一)——最简单的 ViewPage+Fragment实例

来源:互联网 发布:异步加载js的方法 编辑:程序博客网 时间:2024/04/30 17:53

用实例说话!

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.cctvjiatao.viewpagedemo"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="14"        android:targetSdkVersion="21" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name=".MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application></manifest>

MainActivity.java
package com.cctvjiatao.viewpagedemo;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;/** * @作者: jiatao * @修改时间:2016-4-12 上午7:53:22  * @包名:com.cctvjiatao.viewpagedemo * @文件名:FragAdapter.java * @版权声明:www.cctvjiatao.com * @功能: 最简单的 ViewPage+Fragment实例  */public class MainActivity extends FragmentActivity {private ViewPager viewpager;private FragAdapter adapter;private List<Fragment> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewpager = (ViewPager) findViewById(R.id.viewpager);list = new ArrayList<Fragment>();list.add(new Frag1());list.add(new Frag2());adapter = new FragAdapter(getSupportFragmentManager(), list);viewpager.setAdapter(adapter);viewpager.setCurrentItem(0);}}

activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:flipInterval="30"        android:persistentDrawingCache="animation" /></RelativeLayout><!-- android:flipInterval; flip是替换,翻转;Interval是间隔; 意思就是设置里面每一个View显示的时间;android:persistentDrawingCache; 字面意思就是  持久化绘画缓存;定义绘图的高速缓存的持久性。 绘图缓存可能由一个 ViewGroup 在特定情况下为其所有的子类启用,例如在一个滚动的过程中。 此属性可以保留在内存中的缓存后其初始的使用。 坚持缓存会消耗更多的内存,但可能会阻止频繁的垃圾回收是反复创建缓存。 默认情况下持续存在设置为滚动。其属性值只有以下几种:none    0x0    The drawing cache is not persisted after use.    animation    0x1    The drawing cache is persisted after a layout animation.    scrolling    0x2    The drawing cache is persisted after a scroll.    all    0x3    The drawing cache is always persisted.    -->

Frag1.java
package com.cctvjiatao.viewpagedemo;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Toast;/** * @作者: jiatao * @修改时间:2016-4-12 上午8:04:22  * @包名:com.cctvjiatao.viewpagedemo * @文件名:Frag1.java * @版权声明:www.cctvjiatao.com * @功能: 第一个Fragment */public class Frag1 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    View view = inflater.inflate(R.layout.act_frag1, container,false);view.findViewById(R.id.btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(getActivity(), "第一个Fragment", 3000).show();}});return view;}}

Frag2.java
package com.cctvjiatao.viewpagedemo;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Toast;/** * @作者: jiatao * @修改时间:2016-4-12 上午8:04:22 * @包名:com.cctvjiatao.viewpagedemo * @文件名:Frag2.java * @版权声明:www.cctvjiatao.com * @功能: 第二个Fragment */public class Frag2 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.act_frag2, container, false);view.findViewById(R.id.btn).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(getActivity(), "第二个Fragment", 3000).show();}});return view;}}

FragAdapter.java
package com.cctvjiatao.viewpagedemo;import java.util.List;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;/** * @作者: jiatao * @修改时间:2016-4-12 上午7:59:22  * @包名:com.cctvjiatao.viewpagedemo * @文件名:FragAdapter.java * @版权声明:www.cctvjiatao.com * @功能: FragmentPager适配器  */public class FragAdapter extends FragmentPagerAdapter {private List<Fragment> list;public FragAdapter(FragmentManager fm) {    super(fm);    }public FragAdapter(FragmentManager fm, List<Fragment> list) {    super(fm);    this.list = list;}@Overridepublic Fragment getItem(int postion) {return list.get(postion);}@Overridepublic int getCount() {return list.size();}}

act_frag1.xml
<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent" >    <Button        android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="54dp"         android:text="第一个Fragment"/></RelativeLayout>

act_frag2.xml

<?xml version="1.0" encoding="UTF-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent" >    <Button        android:id="@+id/btn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="54dp"         android:text="第二个Fragment"/></RelativeLayout>

0 1