viewpager实现Tab

来源:互联网 发布:open cursor for sql 编辑:程序博客网 时间:2024/05/16 18:54

1、main_activity布局代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <include layout="@layout/top" />    <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        ></android.support.v4.view.ViewPager>    <include layout="@layout/buttom"/></LinearLayout>
 2、buttom导航栏布局代码(top顶部标题和viewpager内容代码,过于简单,就不写了)

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@drawable/bottom_bar"    android:orientation="horizontal">    <LinearLayout        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"        android:id="@+id/weixin"        android:gravity="center"        android:orientation="vertical">        <ImageButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="#00000000"            android:clickable="false"            android:id="@+id/Ib_weixin"            android:src="@drawable/tab_weixin_normal" />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="微信"            android:textColor="#ffffff"            android:textSize="12sp" />    </LinearLayout>    <LinearLayout        android:layout_width="0dp"        android:layout_height="match_parent"        android:id="@+id/friend"        android:layout_weight="1"        android:gravity="center"        android:orientation="vertical">        <ImageButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="#00000000"            android:clickable="false"            android:id="@+id/Ib_friend"            android:src="@drawable/tab_find_frd_normal" />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="朋友"            android:textColor="#ffffff"            android:textSize="12sp" />    </LinearLayout>    <LinearLayout        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"        android:gravity="center"        android:id="@+id/address"        android:orientation="vertical">        <ImageButton            android:id="@+id/Ib_address"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="#00000000"            android:clickable="false"            android:src="@drawable/tab_address_normal" />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="通讯录"            android:textColor="#ffffff"            android:textSize="12sp" />    </LinearLayout>    <LinearLayout        android:layout_width="0dp"        android:layout_height="match_parent"        android:layout_weight="1"        android:id="@+id/setting"        android:gravity="center"        android:orientation="vertical">        <ImageButton            android:id="@+id/Ib_setting"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:background="#00000000"            android:clickable="false"            android:src="@drawable/tab_settings_normal" />        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="设置"            android:textColor="#ffffff"            android:textSize="12sp" />    </LinearLayout></LinearLayout>

3、mian_activity代码

public class MainActivity extends Activity implements View.OnClickListener {    private LinearLayout mWeixin;    private LinearLayout mFriend;    private LinearLayout mAddress;    private LinearLayout mSetting;    private ViewPager mViewpager;    private ImageButton mIb_weixin;    private ImageButton mIb_friend;    private ImageButton mIb_address;    private ImageButton mIb_Setting;    private List<View> mViews = new ArrayList<>();    private PagerAdapter mPagerAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);//        this.getActionBar().hide();        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        initView();        initEvent();    }    private void initView() {        mWeixin = (LinearLayout) findViewById(R.id.weixin);        mFriend = (LinearLayout) findViewById(R.id.friend);        mSetting = (LinearLayout) findViewById(R.id.setting);        mAddress = (LinearLayout) findViewById(R.id.address);        mViewpager = (ViewPager) findViewById(R.id.viewpager);        mIb_weixin = (ImageButton) findViewById(R.id.Ib_weixin);        mIb_friend = (ImageButton) findViewById(R.id.Ib_friend);        mIb_address = (ImageButton) findViewById(R.id.Ib_address);        mIb_Setting = (ImageButton) findViewById(R.id.Ib_setting);        LayoutInflater mInflater = LayoutInflater.from(this);        View weixin_content = mInflater.inflate(R.layout.tab01, null);        View friend_content = mInflater.inflate(R.layout.tab02, null);        View address_content = mInflater.inflate(R.layout.tab03, null);        View setting_content = mInflater.inflate(R.layout.tab04, null);        mViews.add(weixin_content);        mViews.add(friend_content);        mViews.add(address_content);        mViews.add(setting_content);        mPagerAdapter = new PagerAdapter() {            @Override            public Object instantiateItem(ViewGroup container, int position) {                View view = mViews.get(position);                container.addView(view);                return view;            }            @Override            public void destroyItem(ViewGroup container, int position, Object object) {                container.removeView(mViews.get(position));            }            @Override            public int getCount() {                return mViews.size();            }            @Override            public boolean isViewFromObject(View view, Object object) {                return view == object;            }        };        mViewpager.setAdapter(mPagerAdapter);    }    private void initEvent() {        mWeixin.setOnClickListener(this);        mFriend.setOnClickListener(this);        mAddress.setOnClickListener(this);        mSetting.setOnClickListener(this);        mViewpager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {                }                @Override                public void onPageSelected ( int position){                    int currentItem = mViewpager.getCurrentItem();                    Reset_ButtomUI();                    switch (currentItem) {                        case 0:                            mIb_weixin.setImageResource(R.drawable.tab_weixin_pressed);                            break;                        case 1:                            mIb_friend.setImageResource(R.drawable.tab_find_frd_pressed);                            break;                        case 2:                            mIb_address.setImageResource(R.drawable.tab_address_pressed);                            break;                        case 3:                            mIb_Setting.setImageResource(R.drawable.tab_settings_pressed);                            break;                    }                }                @Override                public void onPageScrollStateChanged ( int state){                }            });        }        @Override        public void onClick (View v){            Reset_ButtomUI();            switch (v.getId()) {                case R.id.weixin:                    mViewpager.setCurrentItem(0);                    mIb_weixin.setImageResource(R.drawable.tab_weixin_pressed);                    break;                case R.id.friend:                    mViewpager.setCurrentItem(1);                    mIb_friend.setImageResource(R.drawable.tab_find_frd_pressed);                    break;                case R.id.address:                    mViewpager.setCurrentItem(2);                    mIb_weixin.setImageResource(R.drawable.tab_find_frd_pressed);                    break;                case R.id.setting:                    mViewpager.setCurrentItem(3);                    mIb_weixin.setImageResource(R.drawable.tab_settings_pressed);                    break;            }        }        //将按钮图片设置为默认颜色    private void Reset_ButtomUI() {        mIb_weixin.setImageResource(R.drawable.tab_weixin_normal);        mIb_address.setImageResource(R.drawable.tab_address_normal);        mIb_friend.setImageResource(R.drawable.tab_find_frd_normal);        mIb_Setting.setImageResource(R.drawable.tab_settings_normal);    }}


0 0