Android可滑動的Tab頁

來源:互聯網
上載者:User

Android可滑動的Tab頁

RadioGroup+ViewPager+Fragment實現的可滑動的Tab頁,非常的靈活。

最終

demo下載:http://download.csdn.net/download/shenyuanqing/9064189

部分源碼

MainActivity

 

package com.example.shen.tabtest.activity;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.view.ViewPager;import android.widget.RadioButton;import android.widget.RadioGroup;import com.example.shen.tabtest.R;import com.example.shen.tabtest.adapter.myFragmentPagerAdapter;import com.example.shen.tabtest.fragment.EvaluationFragment;import com.example.shen.tabtest.fragment.MerchantFragment;import com.example.shen.tabtest.fragment.OrderFragment;import java.util.ArrayList;public class MainActivity extends FragmentActivity implements RadioGroup.OnCheckedChangeListener{    private ViewPager viewPager;    private RadioGroup radioGroup;    private RadioButton rbOrder,rbEvaluation,rbMerchant;    private ArrayList alFragment;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //初始化介面組件        initView();        //初始化ViewPager        initViewPager();    }    private void initView(){        viewPager=(ViewPager) findViewById(R.id.viewpager);        radioGroup=(RadioGroup) findViewById(R.id.radiogroup);        rbOrder=(RadioButton) findViewById(R.id.rb_order);        rbEvaluation=(RadioButton) findViewById(R.id.rb_evaluation);        rbMerchant=(RadioButton) findViewById(R.id.rb_merchant);        radioGroup.setOnCheckedChangeListener(this);    }    private void initViewPager(){        OrderFragment orderFragment=new OrderFragment();        EvaluationFragment evaluationFragment=new EvaluationFragment();        MerchantFragment merchantFragment=new MerchantFragment();        alFragment=new ArrayList<>();        alFragment.add(orderFragment);        alFragment.add(evaluationFragment);        alFragment.add(merchantFragment);        //ViewPager設定適配器        viewPager.setAdapter(new myFragmentPagerAdapter(getSupportFragmentManager(), alFragment));        //ViewPager顯示第一個Fragment        viewPager.setCurrentItem(0);        //ViewPager頁面切換監聽        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            //滑動ViewPager,RadioButton選中狀態做相應變換            @Override            public void onPageSelected(int position) {                switch (position){                    case 0:                        radioGroup.check(R.id.rb_order);                        break;                    case 1:                        radioGroup.check(R.id.rb_evaluation);                        break;                    case 2:                        radioGroup.check(R.id.rb_merchant);                        break;                }            }            @Override            public void onPageScrollStateChanged(int state) {            }        });    }    /**     * 點擊RadioButton切換ViewPager中相應的Fragment     * @param group     * @param checkedId     */    @Override    public void onCheckedChanged(RadioGroup group, int checkedId) {        switch (checkedId){            case R.id.rb_order:                viewPager.setCurrentItem(0,false);                break;            case R.id.rb_evaluation:                viewPager.setCurrentItem(1,false);                break;            case R.id.rb_merchant:                viewPager.setCurrentItem(2,false);                break;        }    }}
activity_main.xml

 

 

                                        
myFragmentPagerAdapter

 

 

package com.example.shen.tabtest.adapter;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import java.util.ArrayList;/** * Created by Administrator on 2015/6/24. */public class myFragmentPagerAdapter extends FragmentPagerAdapter {    private ArrayList list;    public myFragmentPagerAdapter(FragmentManager fm, ArrayList list){        super(fm);        this.list=list;    }    @Override    public Fragment getItem(int position) {        return list.get(position);    }    @Override    public int getCount() {        return list.size();    }}
style_radiobutton

 

 







 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.