ViewPage和Fragment一起使用的例子

转自:http://blog.csdn.net/wwj_748/article/details/11225271

效果图:


可以看到,两个fragment都可有控件的点击事件,如果是两个Activity我不知道怎么实现,可能会稍微麻烦一点。


简单的ViewPage布局:

ViewPage_Fragment_Demo/res/layout/activity_main.xml

[html] view plain copy print ?
<?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>

 

ViewPage_Fragment_Demo/res/layout/viewpager1.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"  
        android:background="@drawable/guide_1" >  
      
        <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:background="@drawable/butten"  
            />  
      
    </RelativeLayout>  

ViewPage_Fragment_Demo/res/layout/viewpager2.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"  
        android:background="@drawable/guide_2" >  
      
        <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:background="@drawable/butten" />  
      
    </RelativeLayout>  



再来一个适配器:

ViewPage_Fragment_Demo/src/com/wwj/vf/adapter/FragAdapter.java

    package com.wwj.vf.adapter;  
      
    import java.util.List;  
      
    import android.support.v4.app.Fragment;  
    import android.support.v4.app.FragmentManager;  
    import android.support.v4.app.FragmentPagerAdapter;  
    /** 
     * FragmentPager适配器 
     * @author wwj 
     * 
     */  
    public class FragAdapter extends FragmentPagerAdapter{  
          
        private List<Fragment> fragments;  
          
      
        public FragAdapter(FragmentManager fm) {  
            super(fm);  
        }  
          
        public FragAdapter(FragmentManager fm, List<Fragment> fragments) {  
            super(fm);  
            this.fragments = fragments;  
        }  
      
        @Override  
        public Fragment getItem(int position) {  
            return fragments.get(position);  
        }  
      
        @Override  
        public int getCount() {  
            return fragments.size();  
        }  
    }  


两个自定义的Fragment

这里很简单,一张背景+一个按钮

ViewPage_Fragment_Demo/src/com/wwj/vf/ui/MyFragment1.java

    package com.wwj.vf.ui;  
      
    import com.wwj.vf.R;  
      
    import android.os.Bundle;  
    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.Button;  
    import android.widget.Toast;  
    /** 
     * 第一个Fragment 
     *  
     * @author wwj 
     * 
     */  
    public class MyFragment1 extends Fragment {  
        private Button btn;  
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
              
        }  
          
          
        @Override  
        public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                Bundle savedInstanceState) {  
            View view = inflater.inflate(R.layout.viewpager1, container, false);  
            btn = (Button) view.findViewById(R.id.btn);  
            btn.setOnClickListener(new OnClickListener() {  
                  
                @Override  
                public void onClick(View v) {  
                    Toast.makeText(getActivity(), "你点我啦,好坏!!!", Toast.LENGTH_LONG).show();  
                }  
            });  
            return view;  
        }  
          
        @Override  
        public void onActivityCreated(Bundle savedInstanceState) {  
            super.onActivityCreated(savedInstanceState);  
        }  
          
        @Override  
        public void onPause() {  
            super.onPause();  
        }  
          
    }  


ViewPage_Fragment_Demo/src/com/wwj/vf/ui/MyFragment2.java

    package com.wwj.vf.ui;  
      
    import android.os.Bundle;  
    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.Button;  
    import android.widget.Toast;  
      
    import com.wwj.vf.R;  
    /** 
     * 第2个Fragment 
     *  
     * @author wwj 
     * 
     */  
    public class MyFragment2 extends Fragment {  
          
        @Override  
        public void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
        }  
          
          
        @Override  
        public View onCreateView(LayoutInflater inflater, ViewGroup container,  
                Bundle savedInstanceState) {  
            View view = inflater.inflate(R.layout.viewpager2, container, false);  
            view.findViewById(R.id.btn).setOnClickListener(new OnClickListener() {  
                  
                @Override  
                public void onClick(View v) {  
                    Toast.makeText(getActivity(), "这个Fragment2哦,要注意了!!", Toast.LENGTH_SHORT).show();  
                }  
            });  
            return view;  
        }  
          
        @Override  
        public void onActivityCreated(Bundle savedInstanceState) {  
            super.onActivityCreated(savedInstanceState);  
        }  
          
        @Override  
        public void onPause() {  
            super.onPause();  
        }  
          
    }  



好啦,在Activity里添加两个Fragment

package com.wwj.vf;  
  
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;  
  
import com.wwj.vf.adapter.FragAdapter;  
import com.wwj.vf.ui.MyFragment1;  
import com.wwj.vf.ui.MyFragment2;  
/** 
 * 主Activity,包含两个fragment 
 *  
 * @author wwj 
 * 
 */  
public class MainActivity extends FragmentActivity {  
      
    private ViewPager vp;  
    private FragAdapter adapter;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        vp = (ViewPager) findViewById(R.id.viewpager);  
          
        List<Fragment> fragments = new ArrayList<Fragment>();  
        fragments.add(new MyFragment1());  
        fragments.add(new MyFragment2());  
          
        adapter = new FragAdapter(getSupportFragmentManager(), fragments);  
        vp.setAdapter(adapter);  
        vp.setCurrentItem(0);  
    }  
  
} 




简单的ViewPage和Fragment的搭配使用就这样了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值