问题标签 [android-tabhost]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1393 浏览

android - 在 Android 中自动添加“更多...”选项卡

我正在编写一个包含许多选项卡的应用程序,有时选项卡的数量可能超过五个。所以我想让它表现得像 iPhone,即将其他标签移动到“更多...”标签。我想知道 TabHost 是否支持此功能,或者是否有任何现有的开源小部件可以帮到我。谢谢。

0 投票
1 回答
2930 浏览

xml - Android:TabHost 如何:在菜单按钮上的现有选项卡中设置新内容?

我最近开始了 Android 编程,并且正在开发我的第一个程序,该程序显示一个历史文本文档,通过 TabHost 由选项卡划分。我已将我的程序限制为一项活动,并且仅在我的 TabSpec 中使用 setContent 在不同的 XML 视图之间切换。

该文档包含未经编辑和已更正的文本版本,我为其构建了文本视图以适应这些文本。我想实现标准菜单,使其具有“查看更正”和“查看原始”的按钮,并切换有更改的选项卡的内容(不更改选项卡或其指示器)。

我已经阅读了 TabHost API,并且无法使用 TabSpec 的 setContent() 编辑现有选项卡内容;并且 AFAIK TabWidget 仅影响实际的选项卡,而不是在按下它们时显示的内容。

我考虑过创建一个新类,它扩展 TabHost 和 super() 所有原始方法,同时包括一个更新 mTab​​Spec 列表的新类。

我的问题是,如何更新特定选项卡的 frameLayout 视图以显示我指定的内容?

0 投票
1 回答
481 浏览

android - Android:选项卡中视图的堆栈管理?

我在这里看到一些答案更喜欢将活动视图作为选项卡的内容。如果我错了,请纠正我。我的理解是,通过切换视图,可以将导航流程保持在选项卡内(我认为对用户更友好)。但我想知道如何在后退按钮事件的情况下管理视图堆栈。这也可能导致一个巨大的 Activity 有大量的视图,这可能不是很好。

因此,在我将当前应用程序更改为此之前,我想知道为什么更喜欢将视图作为内容。

谢谢,

0 投票
1 回答
4704 浏览

android - Android中TabHost的所有选项卡中的通用底部布局?

我有一个带有 4-5 个标签的 TabHost。我希望所有标签都有一个类似的底部。有什么办法可以为所有标签添加底部?还是我需要将 xml 代码放在每个布局文件中。

请让我知道是否有人有解决方案。

问候

苏尼尔

0 投票
1 回答
2324 浏览

java - ListView 项目没有响应点击

我刚刚开始接触 Android,并构建了一个 UI,其中包含一个带有三个选项卡的 TabHost。每个选项卡都由其自己的 Activity 提供支持。第一个选项卡包含一个列表视图,其中包含一组预填充的行,并且是从自定义 ArrayAdapter 构建的。

我遇到的问题是没有一个 ListView 行是可点击的。换句话说,当我点击它们时,没有橙色选择。如果我在 Nexus One 上使用滚动球,它会选择,但任何触摸手势似乎都没有响应。

所有 UI 都使用 XML 文件处理,其中 main.xml 包含 TabHost -> LinearLayout -> TabWidget/FrameLayout 和包含我的 ListView UI 的 near_activity.xml 文件

我的活动中的相关代码设置为显示在所选选项卡中。

我的列表视图行也由 XML 文件填充。

谢谢你尽你所能的帮助。

0 投票
3 回答
9683 浏览

android - 在Android中动态修改标签指示器

我的应用程序需要动态更新选项卡指示器,我试图通过调用 TabSpec.setIndicator() 来做到这一点,但它不起作用。这是我的代码:

在 TabActivity 的 onCreate 方法中:

现在我需要将制表符更改为另一个字符串,例如“xyz”

但它不起作用。所以我想知道标签指示器添加到标签主机后如何更改它?非常感谢。

解决方案

感谢@CommonsWare,我使用 TabWidget.getChildAt 来制作它,为了您的方便,这是我的代码:

0 投票
1 回答
1589 浏览

android - 为什么当我更改首选项时我的 onSharedPreferenceChangeListener 会被多次调用

我编写了一个带有 3 个选项卡的应用程序。每个选项卡都有相同的列表视图和不同的数据源。我在 tabhost 活动中设置了 SharedPreferences,但我将我的 onSharedPreferenceChangeListener 方法放在了我的 listactivity 中。当我更改首选项时,我的侦听器会被调用并更新我的数据库。这一切都在工作。但是,如果我更改选项卡 1 中的数据,它会调用我的侦听器一次。如果我更改选项卡 2 的数据,它会调用两次,如果我更改选项卡 3 中的数据,它会调用三次。知道为什么它会这样工作吗?我想我可以在我的列表活动中设置我的共享首选项,这可能会避免这个问题,但我很好奇为什么我的监听器在不同的选项卡中被多次调用。

西兰花

0 投票
4 回答
21129 浏览

android - 从 Android TabHost 中的选项卡活动更新选项卡

我有一个 TabActivity 并且将有 3 或 4 个选项卡。

在 TabA 中,我想要一个可以列出产品的 ExpandableListView。我希望 TabC 充当一种“购物车”,可能带有自身的 ListView。

有没有办法从 Activity 与 TabHost 交互?我希望能够单击 TabA 内的按钮并让它更新并切换到 TabC。这可能吗?我可以让 Tab 的活动调用它的父方法吗?

0 投票
1 回答
880 浏览

android - Android强制标签活动创建?

我有一个主要活动是 tabhost 的 Android 应用程序。我正在向 tabhost 添加多个选项卡,目的是进行多项活动。

我的问题是在我单击选项卡之前不会创建这些活动(不调用 onCreate)。这是一个问题,因为我需要注册广播接收器:可能会在打开特定选项卡之前发送广播。

我试图通过以下方式解决这个问题:

  • 将我的接收器设置为静态并从其他地方注册。这是不可能的,因为我需要调用方法。
  • 调用 tabHost.setCurrentTabByTag(the_tag) 然后切换回我的根选项卡。这只有时有效,这是一个非常丑陋的解决方案。
  • 不使用活动,而只是使用视图。也不是一个非常优雅的解决方案,因为它将我的 tabHost 活动变成了一个巨大的大师班,做各种不相关的事情。

这个问题的最佳解决方案是什么?我可以以某种方式使发送的广播“排队”而不是在没有接收器时消失吗?我可以强制创建我的标签活动(这不是问题,我的用户几乎可以保证在某些时候使用每个标签)?其他想法?

编辑:

根据 CommonsWare 在这个问题中的说法; 从 Android TabHost 中的选项卡活动更新选项卡

将选项卡实现为视图而不是活动可能是一个更好的主意......这在一定程度上改变了我的问题:

如何在同一个活动中分离不同类型的逻辑?不是很期待 30+ 方法的 uberactivity。

0 投票
1 回答
1341 浏览

android - 在多视图 TabActivity 中模拟后退按钮

我有一个带有多个选项卡的 TabActivity。每个选项卡对应一个特定的视图,这些视图可以进一步切换到其他视图。例如,我的一个选项卡显示 RSS 提要列表,用户单击其中一个 RSS 提要后,它将切换到显示文章列表的视图,用户单击其中一个标题后,将显示完整的文章视图。

我将在我的应用程序中添加对“后退”按钮的支持。例如,在完整的文章视图中,用户按下“返回”按钮后,它应该切换回文章列表视图。如果用户再次按下“返回”按钮,我的应用程序应该切换回提要列表视图。

我的想法是在导航期间保持一个Stack<View>,每次用户按下“返回”按钮时,程序都会从​​堆栈中弹出一个视图,并将其设置为当前视图。但我想知道如何在 TabHost 中设置当前视图。非常感谢。