【问题标题】:Android Tab Layout how to start from the second tabAndroid Tab Layout如何从第二个tab开始
【发布时间】:2014-06-04 15:16:20
【问题描述】:

嗨,我正在关注这个 tut http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

我希望应用程序以“游戏”标签而不是“评分最高”标签开头!请您帮我解决这个问题:)

这是我的代码

package com.scorebeyond.android.tabswithswipeexample;

import com.scorebeyond.android.tabswithswipeexample.adapter.TabsPagerAdapter;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.ActionBar.TabListener;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;

public class MainActivity extends FragmentActivity implements TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;

    // Tab Titles
    private String[] tabs = { "Top Rated", "Games", "Movies" };

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

        // Initialize
        viewPager = (ViewPager) findViewById(R.id.pager);
        viewPager.setCurrentItem(-1);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        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) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {

        // On tab selected
        // show respected fragment view

        viewPager.setCurrentItem(tab.getPosition());

    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }

}

谢谢很多

【问题讨论】:

    标签: java android android-layout android-fragments tabs


    【解决方案1】:

    你应该使用(在你的 onCreate 方法结束时):

    action bar selectTab method 使用您之前添加为参数的选项卡

    使用Action Bar setSelectedNavigationItem按位置选择标签项

    actionBar.setSelectedNavigationItem(1);

    【讨论】:

      【解决方案2】:

      在您的 onCreate() 方法中使用 Android TabHost 及其方法 setCurrentTab()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多