Android中实现可滑动的Tab的3种方式

2019-12-10 20:11:09王旭

import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TabWidget;
import android.widget.TextView;

import com.swordy.demo.android.R;

/**
 * 1. 使用TabWidget和ViewPager实现可滑动的Tab
 * 
 * @author swordy
 * @email mryangjian@live.com
 * @since Jan 20, 2014
 * @version 1.0
 */
public class SlideTabs3 extends FragmentActivity
{
    private static final String TAG = "AndroidDemos.SlideTabs3";

    private ViewPager mViewPager;

    private PagerAdapter mPagerAdapter;

    private TabWidget mTabWidget;

    private String[] addresses = { "first", "second", "third" };

    private Button[] mBtnTabs = new Button[addresses.length];

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_slidetabs3);

        mTabWidget = (TabWidget) findViewById(R.id.tabWidget1);
        mTabWidget.setStripEnabled(false);
        mBtnTabs[0] = new Button(this);
        mBtnTabs[0].setFocusable(true);
        mBtnTabs[0].setText(addresses[0]);
        mBtnTabs[0].setTextColor(getResources().getColorStateList(R.color.button_bg_color_selector));
        mTabWidget.addView(mBtnTabs[0]);
        /* 
         * Listener必须在mTabWidget.addView()之后再加入,用于覆盖默认的Listener,
         * mTabWidget.addView()中默认的Listener没有NullPointer检测。
         */