如何使用Android标签

时间:2012-12-14 16:47:51

标签: android android-layout tabs

我有一个关于Android的问题。我是Android的新手,并尝试使用标签作为主要导航元素制作一个小应用程序。好吧,我不是100%确定如何使用标签正确。也许你可以在那里指导我。

据我所知,基本上有两种不同的选择。我可以在操作栏中使用制表符,也可以使用TabHost。在我看来,前者是正确的方法。这里有什么优点和缺点?

如果我使用操作栏中的标签,建议不要超过3个标签。如果我需要更多导航选项(因为我知道它不像iOS标签,你有“...”选项),该怎么办?

我应该使用不同类型的导航元素吗? (我想在我的情况下,我将有4个“标签”)

提前致谢!

4 个答案:

答案 0 :(得分:3)

行动吧绝对是最佳选择。 TabHost已被弃用,Google更倾向于选择Action栏,因为它真的符合ICS之后的设计理念。

您可以使用ActionBarSherlock支持2.1(Eclair)之后的所有Android版本。

以下是一些帮助您入门的教程:

http://avilyne.com/?p=180

http://xrigau.wordpress.com/2012/03/15/using-an-actionbar-in-your-application-with-actionbarsherlock/

视频教程:

http://www.youtube.com/watch?v=avcp6eD_X2k

http://www.youtube.com/watch?v=4mOMOh-fH-c

答案 1 :(得分:1)

尝试这样的事情:

Activity sampleActivity = (Activity) View.getContext();
ActionBar actionBar = sampleActivity.getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab = actionBar.newTab();
tab.setText("This is the name of the tab");
actionBar.addTab(tab, true);

答案 2 :(得分:0)

使用此示例解决他/她的问题

Tab

的主要xml文件
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">
    <TabWidget`enter code here`
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:padding="5dp" />
</LinearLayout>

java文件

     @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);

    Resources ressources = getResources();
    TabHost tabHost = getTabHost();

            Intent intentAndroid = new Intent().setClass(this,FirstClass.class);

    TabSpec tab1 = tabHost
            .newTabSpec("Android")
            .setIndicator("",ressources.getDrawable(R.drawable.icon_android_config))
            .setContent(intentAndroid);

Intent intentAndroid2 = new Intent().setClass(this,FirstClass.class);

    TabSpec tab2 = tabHost
            .newTabSpec("Android")
            .setIndicator("",ressources.getDrawable(R.drawable.icon))
            .setContent(intentAndroid2);


            tabHost.addTab(tab1);
    tabHost.addTab(tab2);

           tabHost.setCurrentTab(0);

}

答案 3 :(得分:0)

public int getCount() {
            // Show 3 total pages.
            return 5;
        }


        @Override
        public CharSequence getPageTitle(int position) {
            switch (position) {
                case 0:
                    return "Items";
                case 1:
                    return "Food";
                case 2:
                    return "Drink";
                case 3:
                    return "soft";
                case 4:
                    return "warm";
            }
            return null;
        }
    }