【问题标题】:Tab Bar in AndroidAndroid中的标签栏
【发布时间】:2014-05-23 05:15:52
【问题描述】:

在这些程序的帮助下,我创建了选项卡。你可以看看下面的代码。

HomeActivity.java:

 package com.sit.fth.activity;

    import android.app.ActionBar;
    import android.app.ActionBar.Tab;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.view.ViewPager;
    import android.util.Log;
    import android.view.WindowManager;


    public class HomeActivity extends BaseActivity implements
            VideoFragment.OnVideoSelectedListener,

            AboutFragment.OnAboutFragmentSelectedListener,

            AnnouncenentFragment.OnAnnouncementSelectedListener,

            GalleryFragment.OnGalItemSelectedListener,

            MagzineFragment.OnMagzineSelectedListener {

        private ActionBar actionabar;
        private ViewPager viewpager;
        private LiveStreamFragment liveStreamFragment;
        private AppData appData;
        private FragmentManager fm;
        private MyFragmentPagerAdapter fragmentPagerAdapter;
        // private HomeBaseFragment fragment;

        @Override
        protected void onCreate(Bundle arg0) {
            super.onCreate(arg0);

            setContentView(R.layout.activity_main);
            appData = ((GemsApplication) this.getApplication()).getAppData();


            actionabar = getActionBar();
            actionabar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);



            liveStreamFragment = new LiveStreamFragment();

            viewpager = (ViewPager) findViewById(R.id.pager);
            fm = getSupportFragmentManager();

            /** Defining a listener for pageChange */
            ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    super.onPageSelected(position);
                    actionabar.setSelectedNavigationItem(position);
                }
            };

            /** Setting the pageChange listner to the viewPager */
            viewpager.setOnPageChangeListener(pageChangeListener);

            /** Creating an instance of FragmentPagerAdapter */
            fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);

            viewpager.setAdapter(fragmentPagerAdapter);
            actionabar.setDisplayShowTitleEnabled(true);

            /** Defining tab listener */
            ActionBar.TabListener tabListener = new ActionBar.TabListener() {

                @Override
                public void onTabReselected(Tab arg0,
                        android.app.FragmentTransaction arg1) {

                }

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

                }

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

                }
            };


                    Tab tab = actionabar.newTab().setText(getString(R.string.str_home))
                            .setTabListener(tabListener);
                    actionabar.addTab(tab);
                    tab = actionabar.newTab().setText(getString(R.string.str_video))
                            .setTabListener(tabListener);
                    actionabar.addTab(tab);
                    tab = actionabar.newTab().setText(getString(R.string.str_gal))
                            .setTabListener(tabListener);
                    actionabar.addTab(tab);
                    tab = actionabar.newTab().setText(getString(R.string.str_announcements))
                            .setTabListener(tabListener);
                    actionabar.addTab(tab);

                    tab = actionabar.newTab()
                            .setText(getString(R.string.str_magazines))
                            .setTabListener(tabListener);
                    actionabar.addTab(tab);

                    tab = actionabar.newTab().setText(getString(R.string.str_conduct))
                            .setTabListener(tabListener);
                    actionabar.addTab(tab);  


        }
    }

我需要将一个标签移动到屏幕底部。我很困惑,因为我在HomeActivity.java coding not from xml layout 的帮助下添加了一个tabs

我不知道如何将标签移动到屏幕底部。任何人都可以帮助我解决这些问题。谢谢。

【问题讨论】:

  • 底部的ActionBar标签不能移动(这也违背了android的设计原则)。但是,您可以使用普通标签并自己将它们放在底部。
  • @Luksprog 谢谢你的回答。我已经使用了普通的标签。但是,我没有得到滑动视图。有没有可能在底部获得滑动标签屏幕?
  • 在您发布的代码中,您似乎在 ActionBar 上设置了选项卡,我也看不到任何 TabHost 小部件会以其他方式指示。正如我所说,使用普通的 TabHost,您可以很容易地将选项卡放在底部,我制作了一个小样本作为示例,说明如何处理此问题。你可以在这里找到示例gist.github.com/luksprog/066f81f5e20c2ca41b7d

标签: android tabs android-actionbar


【解决方案1】:

此链接:Placing my ActionBar at the bottom

谷歌默认操作栏无论如何都不会出现在底部。正如其他人所提到的,splitActionBarWhenNarrow 仅在设备较窄时将 ActionBar 的子集(如选项卡等)放在屏幕底部。不幸的是,如果你想在屏幕底部实现一个类似 ActionBar 的界面,你必须自己实现它(快速搜索找到这个例子),因为我还没有看到任何图书馆为你做这件事。

不过,我建议不要这样做,因为它违反了设计文档中的无缝设计原则,因为它打破了用户对 ActionBar 类型控件的位置的期望 - 理想情况下,Android 用户习惯于以某种方式做事,你需要一个非常有说服力的理由来打破这种期望。

too see this link :http://developer.android.com/guide/topics/ui/actionbar.html#SplitBar

and here is a sample :http://android-ed.blogspot.com/2011/12/using-actionbar-at-bottom-of-screen.html

【讨论】:

    猜你喜欢
    • 2011-12-31
    • 2011-08-18
    • 2014-05-23
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多