Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 不同风格的导航-手机还是平板电脑?_Android_Android Fragments - Fatal编程技术网

Android 不同风格的导航-手机还是平板电脑?

Android 不同风格的导航-手机还是平板电脑?,android,android-fragments,Android,Android Fragments,我相当擅长片段API,我知道如何在手机/平板电脑上创建主/细节模式。 但如何在手机和平板电脑中创建不同风格的导航? 最明显的例子是在手机上滑动标签和某种平板电脑布局,所有的碎片都放在里面,没有滑动标签 除了巨型if语句之外,还有其他优雅的方法吗 //编辑 所以,正如我推测的那样,你要做的是创建两个布局(手机-查看寻呼机/平板电脑-三个静态片段),并在activity的onCreate中检查布局中的某些内容,以确定你是在手机中还是在平板电脑中然后,如果您在平板电脑中,只需初始化选项卡导航/或不初

我相当擅长片段API,我知道如何在手机/平板电脑上创建主/细节模式。 但如何在手机和平板电脑中创建不同风格的导航?

最明显的例子是在手机上滑动标签和某种平板电脑布局,所有的碎片都放在里面,没有滑动标签

除了巨型if语句之外,还有其他优雅的方法吗

//编辑

所以,正如我推测的那样,你要做的是创建两个布局(手机-查看寻呼机/平板电脑-三个静态片段),并在activity的onCreate中检查布局中的某些内容,以确定你是在手机中还是在平板电脑中然后,如果您在平板电脑中,只需初始化选项卡导航/或不初始化。应该可以

IO 2012应用程序的代码片段


<> P>任何已经在手机上有Tabs导航的家伙,请考虑在平板电脑上实现这一点,如果它对你的设计是明智的。你已经准备好了fragments api,所以真的没有借口了。

你可以看看Roman Nurik的2012 I/O应用程序,它可以根据大小和方向的各种可能组合切换导航/布局


你的意思是适应屏幕大小的差异?i、 e.在手机上,我需要导航,因为我无法在一个屏幕上显示所有的片段,但在平板电脑上,我有更多的空间可以同时看到2或3个。别担心,我到家后会做的,我想先检查一下,从代码中找出更全面的答案,让其他人看到
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_home);
    FragmentManager fm = getSupportFragmentManager();

    mViewPager = (ViewPager) findViewById(R.id.pager);
    if (mViewPager != null) {
        // Phone setup
        mViewPager.setAdapter(new HomePagerAdapter(getSupportFragmentManager()));
        mViewPager.setOnPageChangeListener(this);

        final ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.addTab(actionBar.newTab()
                .setText(R.string.title_my_schedule)
                .setTabListener(this));
        actionBar.addTab(actionBar.newTab()
                .setText(R.string.title_explore)
                .setTabListener(this));
        actionBar.addTab(actionBar.newTab()
                .setText(R.string.title_stream)
                .setTabListener(this));

        homeScreenLabel = getString(R.string.title_my_schedule);

    } else {
        //Tablet setup
        mExploreFragment = (ExploreFragment) fm.findFragmentById(R.id.fragment_tracks);
        mMyScheduleFragment = (MyScheduleFragment) fm.findFragmentById(R.id.fragment_my_schedule);
        mSocialStreamFragment = (SocialStreamFragment) fm.findFragmentById(R.id.fragment_stream);
    }
}