0

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

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

如果我使用操作栏中的选项卡,建议不要超过 3 个选项卡。如果我需要更多导航选项怎么办(据我了解,它不像 iOS 选项卡那样有“...”选项)?

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

提前致谢!

4

4 回答 4

3

行动栏绝对是要走的路。TabHost 已被弃用,Google 更喜欢使用 Action bar,因为它确实符合 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

于 2012-12-14T17:08:55.547 回答
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);
于 2012-12-14T18:10:57.670 回答
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>

文件

     @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);

}

于 2012-12-14T17:08:36.387 回答
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;
        }
    }
于 2016-11-12T11:33:11.523 回答