Android - 屏幕底部的标签

时间:2013-09-22 14:07:27

标签: android layout tabs

我一直在寻找一天让我的Android应用程序在屏幕底部有标签的方法。

在Android开发者网站的样式和主题部分,他们似乎有我想要做的确切示例,但是他们没有必要提供一个体面的例子:

enter image description here

我在网上找到的所有提示/解决方案都失败了。我似乎总是得到以下对接丑陋的布局,其中选项卡在应用程序名称旁边的屏幕顶部错位: - (

enter image description here

有没有人知道如何做到这一点?

如果有任何提示,请提前感谢您!

10 个答案:

答案 0 :(得分:11)

我认为这些示例对您有用:Android Bottom tab bar exampleTHIS

答案 1 :(得分:4)

答案 2 :(得分:2)

我使用此布局在屏幕底部找到标签:

?xml version="1.0" encoding="utf-8"?>
<TabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0"/>
        <FrameLayout
            android:id="@+android:id/realtabcontent"
            android:background="@drawable/bg_main_app_gradient"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>
        <TabWidget
            android:id="@android:id/tabs"
            android:background="#EAE7E1"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>
    </LinearLayout>
</TabHost>

代码检查:https://stackoverflow.com/a/23150258/2765497

答案 3 :(得分:1)

我认为您搜索的问题不够,因为您使用错误的关键字进行搜索。

您在gmail应用程序底部的第一张图片中显示的内容有4个菜单和第5个溢出菜单以及顶部操作栏上方

您可以使用清单中的简单属性在底部放置一个菜单;主要活动上的一行显示操作栏

android:uiOptions="splitActionBarWhenNarrow"

像这样:

<activity
    android:name="com.example.HomeActivity"
    android:screenOrientation="portrait"
        android:uiOptions="splitActionBarWhenNarrow"
    android:theme="@style/Theme.Sherlock.Light" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

答案 4 :(得分:1)

Google建议不要在底部添加标签。

请参阅Android的以下官方设计模式指南,
并查找“不要使用底部标签栏”

部分

http://developer.android.com/design/patterns/pure-android.html

答案 5 :(得分:1)

我想在这里发布更新。 Bottom nav bars are now Android Canon.主要的收获是:

1)仅使用3-5个图标的底部导航栏。少一点,使用tabs。此外,使用可滚动的标签(在同一链接上向下翻页)。

2)避免同时使用底部导航栏和标签,并确保两者的责任明确分开。

3)底部导航栏应该用于导航而非操作(使用ActionBar表示)

答案 6 :(得分:1)

答案 7 :(得分:0)

非常简单......

对于简单的标签栏,我们使用

<?xml version="1.0" encoding="utf-8"?>
<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
            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>
</TabHost>

但是在Bottom标签栏中我们使用

**

<?xml version="1.0" encoding="utf-8"?>
<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">
    <RelativeLayout
        android:layout_height="fill_parent"
        android:layout_width="fill_parent">
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_alignParentBottom="true"
            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" />
    </RelativeLayout>
</TabHost>**

主要是

 android:layout_alignParentBottom=”true”;

答案 8 :(得分:0)

我遇到了你想要做同样事情的问题,但是根据机器人开发指南,你不应该在底部有一个标签栏,因为这是一个iOS功能......

Android Development Standards

答案 9 :(得分:0)

你似乎对底栏感到有点困惑。这不是标签栏。底栏用于操作,而不是导航屏幕。例如,在您上面发布的Gmail应用的屏幕截图中,底栏允许用户:撰写电子邮件,搜索,标记,刷新等。请参阅:http://developer.android.com/design/patterns/actionbar.html

从技术上讲,这些按钮会将用户导航到其他屏幕,但标签栏通常用于“切换”屏幕。例如,按类别查看内容。

嗯,但在最新版本的Gmail应用中,他们将这些操作按钮放在首位。叹息...