我一直在寻找一种方法来让我的 android 应用程序在屏幕底部有标签。
在样式和主题部分的 Android 开发者网站上,他们似乎有我正在尝试做的确切示例,但是他们认为没有必要提供一个体面的示例:
我在网上找到的所有提示/解决方案都失败了。我似乎总是得到以下丑陋的布局,其中选项卡在应用程序名称旁边的屏幕顶部非常错位:-(
有谁知道如何做到这一点?
非常感谢您提前提供任何提示!
我认为这些示例对您有用: Android Bottom tab bar example AND THIS
这是在底部实现选项卡的github的两个链接。
我使用此布局在屏幕底部定位选项卡:
?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>
我认为您没有对您的问题进行足够的搜索,因为您使用了错误的关键字进行搜索。
您在 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>
Google 不建议在底部放置标签。
请参阅以下来自 Android 的官方设计模式指南,
并查找“不要使用底部标签栏”部分
http://developer.android.com/design/patterns/pure-android.html
我想在这里发布更新。底部导航栏现在是 Android Canon。主要的收获是:
1) 仅对 3-5 个图标使用底部导航栏。更少,使用tabs。更多,使用可滚动标签(在同一链接上向下翻页)。
2) 避免同时使用底部导航栏和选项卡,如果这样做,请确保两者的职责明确分开。
3)底部导航栏应该用于导航而不是操作(使用ActionBar
那些)
它非常简单......
对于简单的标签栏,我们使用
<?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”;
我遇到了您寻求做同样事情的问题,但是根据 androids 开发指南,您不应该在底部有标签栏,因为这是 iOS 功能...
您似乎对底部栏有点困惑。那不是标签栏。底部栏用于操作,而不是导航屏幕。例如,在您在上面发布的 Gmail 应用程序的屏幕截图中,底部栏允许用户:撰写电子邮件、搜索、标记、刷新等。参考:http: //developer.android.com/design/patterns/actionbar.html
从技术上讲,这些按钮确实可以将用户导航到其他屏幕,但是标签栏通常用于“切换”屏幕。例如按类别查看内容。
嗯,但在最新版本的 Gmail 应用程序中,它们在顶部有这些操作按钮。叹...