Android 使用Viewpager显示特定数量的选项卡

Android 使用Viewpager显示特定数量的选项卡,android,tabs,android-viewpager,Android,Tabs,Android Viewpager,我正在使用ViewPager在4个选项卡之间滑动。我希望对齐选项卡,当前选项卡位于对齐的中间,最右边有一个选项卡(如果可用),最左边有一个选项卡 我知道你可以用一些第三方图书馆做一些棘手的事情(例如,杰克·沃顿)。但是我可以用本机的ViewPager来控制这个控件吗?(我还使用支持库v4。) 至少,我的问题是,我可以定义屏幕上显示多少选项卡吗?我有4个,任何时候都想要3个。 这是我的布局 <LinearLayout android:layout_width="fill_parent

我正在使用ViewPager在4个选项卡之间滑动。我希望对齐选项卡,当前选项卡位于对齐的中间,最右边有一个选项卡(如果可用),最左边有一个选项卡

我知道你可以用一些第三方图书馆做一些棘手的事情(例如,杰克·沃顿)。但是我可以用本机的ViewPager来控制这个控件吗?(我还使用支持库v4。)

至少,我的问题是,我可以定义屏幕上显示多少选项卡吗?我有4个,任何时候都想要3个。

这是我的布局

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:orientation="horizontal" />

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_weight="0" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>



选项卡式应用程序的普通视图在顶部有三个选项卡,您可以在其中滑动。如果您的viewpager中有更多选项卡,您可以随意滚动

实施过程与此类似:

public class MainActivity extends FragmentActivity implements ActionBar.TabListener {

    private ViewPager ViewPager;
    private TabsPagerAdapter SectionsPagerAdapter;
    private ActionBar actionBar;

    private String[] tabs = { "Event Details", "Line-up", "Donations", "Concert"};

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

     // Initialisation
        ViewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        SectionsPagerAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        ViewPager.setAdapter(SectionsPagerAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name).setTabListener(this));
        }

        ViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {

    }

    @Override
    public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
        ViewPager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
    }
}

希望这有帮助:)

我也在寻找这个