6

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

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

在此处输入图像描述

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

在此处输入图像描述

有谁知道如何做到这一点?

非常感谢您提前提供任何提示!

4

10 回答 10

12

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

于 2013-09-22T14:25:34.470 回答
4

这是在底部实现选项卡的github的两个链接。

在此处输入图像描述

https://github.com/AdilSoomro/Iphone-Tab-in-Android

在此处输入图像描述

https://github.com/AdilSoomro/Raised-Center-Tab-in-Android

于 2013-09-22T14:30:31.813 回答
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

于 2014-04-18T08:32:17.470 回答
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>
于 2013-09-22T14:34:15.977 回答
1

Google 不建议在底部放置标签。

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

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

于 2015-09-28T15:54:26.223 回答
1

我想在这里发布更新。底部导航栏现在是 Android Canon。主要的收获是:

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

2) 避免同时使用底部导航栏和选项卡,如果这样做,请确保两者的职责明确分开。

3)底部导航栏应该用于导航而不是操作(使用ActionBar那些)

于 2016-03-21T16:35:48.230 回答
1

随着底部导航的引入。

https://material.google.com/components/bottom-navigation.html

你可以这样做

https://stackoverflow.com/a/36033640/6207502

于 2016-06-25T07:13:12.087 回答
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>

但是在底部标签栏中,我们使用

**

<?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”;
于 2014-03-25T05:43:57.477 回答
0

我遇到了您寻求做同样事情的问题,但是根据 androids 开发指南,您不应该在底部有标签栏,因为这是 iOS 功能...

Android 开发标准

于 2014-10-02T22:11:25.370 回答
0

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

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

嗯,但在最新版本的 Gmail 应用程序中,它们在顶部有这些操作按钮。叹...

于 2015-09-07T08:24:20.683 回答