在 FragmentPagerAdapter 选项卡上显示图标

2024-04-17

这个示例是使用 C# 在 Xamarin 中创建的,如果您知道 Java 中的答案,我也可以将其转换为 C#

我正在使用FragmentPagerAdapter http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html将三个不同的片段显示为选项卡。我可以在选项卡标题中显示一些文本,如下所示:

public override Java.Lang.ICharSequence GetPageTitleFormatted(int position)
{
    return new Java.Lang.String("Tab: " + position);
}

这工作得很好:我看到三个带有标题的选项卡Tab: 0, Tab: 1 and Tab: 2.

现在,我想用一些图标替换文本。我正在尝试这样做,就像寻呼机滑动选项卡条 https://stackoverflow.com/questions/29534420/how-can-i-develop-the-pagerslidingtabstrip-with-images-in-android/29535378#29535378, 用一个SpannableString & ImageSpan .

public override Java.Lang.ICharSequence GetPageTitleFormatted(int position)
{
    var image = Application.Context.Resources.GetDrawable(Resource.Drawable.icon);
    image.SetBounds(0, 0, image.IntrinsicWidth, image.IntrinsicHeight);

    var spannableString = new Android.Text.SpannableString("[icon]");
    var imageSpan = new Android.Text.Style.ImageSpan(image, Android.Text.Style.SpanAlign.Bottom);
    spannableString.SetSpan(imageSpan, 0, 1, Android.Text.SpanTypes.ExclusiveExclusive);
    return spannableString;
}

可悲的是,我现在看到的是三倍[icon]作为标题。看起来好像图标根本没有添加到标题中。

我在这里做错了什么吗?谢谢你的帮助!


默认情况下,TabLayout 创建的选项卡将 textAllCaps 属性设置为 true,这会阻止渲染 ImageSpans。您可以通过更改 tabTextAppearance 属性来覆盖此行为。

<style name="MyCustomTabLayout" parent="Widget.Design.TabLayout">
      <item name="tabTextAppearance">@style/MyCustomTextAppearance</item>
</style>

<style name="MyCustomTextAppearance" parent="TextAppearance.Design.Tab">
      <item name="textAllCaps">false</item>
</style>

然后您可以将 MyCustomTabLayout 样式添加到 TabLayout 中,如下所示:

<android.support.design.widget.TabLayout
 android:id="@+id/tabs"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 style="@style/MyCustomTabLayout" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 FragmentPagerAdapter 选项卡上显示图标 的相关文章

  • EditText 中的验证允许 IP 或 Web Url 主机

    我需要对我的 EditText 进行验证 以便它允许我输入有效的 IP 地址格式 即示例 132 0 25 225 or 网址格式 www 例如 www example com 逻辑是 如果用户首先输入任何数值 则验证 IP 将执行操作 否
  • 在 Android 中创建和使用 9 补丁图像

    我最近听说了 9 补丁图像 我知道它是 9 平铺的并且是可拉伸的 我想了解更多 如何创建 9 块图像 有什么工具吗 我可以通过 AndroidSDK 或代码创建它吗 9 patch 相对于普通 png 的主要优点 它是否可以根据屏幕动态 自
  • Android中如何使用洪水填充算法?

    我是Android编程新手 最近尝试编写一个简单的应用程序 仅供练习 在这个中 我想在用户点击时为图像着色 但我不知道如何开始 我读过不同的主题 其中提到使用 洪水填充 算法 我在网上找到了它 但我不知道如何将它放入我的简单应用程序中 我找
  • 检索子值 -firebase-

    System out println ref child email protected cdn cgi l email protection child email 我正在尝试获取 child 的值 但我始终获取该值的 URL 当我尝试使
  • 使用 APDU 命令的有效 NFC 读取比特率是多少?

    我目前正在使用 Android IsoDep trancieve 函数发送和接收累计 1628 字节的数据 该函数分布在 35 个 APDU 命令 选择应用程序 身份验证 读取 中 字节计数包括返回的 MAC 校验和以及由 transcie
  • 按钮未显示在屏幕上

    我创建了一个应用程序 其中显示带有图像和文本的列表视图 我在页面末尾添加按钮 但这没有显示在屏幕上 我是 Android 新手 我该如何解决这个问题 这是我的 UI XML 代码
  • Android - 当不在栏顶部时推送通知空白

    我在使用 Android 推送通知时遇到一个小问题 如果有 3 个通知 并且只有其中一个显示标题和消息 位于酒吧顶部的那个 如果有人知道可能是什么问题 请告诉我 请参阅此链接上的图像 这就是我接收通知的方式http postimg org
  • 获取可以共享数据的应用程序列表

    此代码显示默认共享对话框 Intent sharingIntent new Intent Intent ACTION SEND sharingIntent setType text html sharingIntent putExtra a
  • AnalyticsService 未在应用程序清单中注册 - 错误

    我正在尝试使用 sdk 中提供的以下文档向 Android 应用程序实施谷歌分析服务 https developers google com analytics devguides collection android v4 https d
  • Android ListView setSelection() 似乎不起作用

    我有一个ListActivity实现onListItemClick 并调用doSomething 类的功能 后者包含l setSelection position where l is the ListView object 现在有一个on
  • Google 移动广告和 Kindle Fire

    我最近用 Google 移动广告替换了 AdMob 库 对此我有一个疑问 广告会出现在 Amazon Kindle Fire 设备上吗 我问这个是因为我知道 Google 移动广告依赖于 Google Play 服务 所以我有点困惑 Goo
  • Android模拟器分配内存失败8

    当我尝试从 Eclipse 运行 WXGA800 模拟器时 出现如下错误 Failed to allocate memory 8 This application has requested the Runtime to terminate
  • Android 改变 ImageView / Bitmap 的颜色

    我需要找到一种方法来改变 Android 中位图的颜色 我需要在我的应用程序中平滑地替换 更改椭圆形图像的颜色 具体取决于int价值 我需要类似的东西myValue 5比改变我的图像的颜色RED and if myValue 322将颜色更
  • 在 AppAuth-Android 中注销

    我有一个用JAVA开发的Android应用程序 对于这个应用程序 我使用的是身份服务器4 https github com IdentityServer IdentityServer4作为我的 STS 一切正常 但我找不到任何注销的实现Ap
  • jar 中的 apklib 有什么优点?

    我正在关注这个问题 https stackoverflow com questions 6059502 whats the difference between apklib and jar files但它并没有完全回答我的问题 jar 中
  • 从手机访问本地主机[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在使用
  • 如何从 Facebook 邀请好友到 Android 应用程序? - 给出错误

    我正在开发一个 Android 应用程序 我正在努力将 邀请朋友 功能添加到我的应用程序中 它转到我的AppLinkUrl成功但显示错误 我的清单代码如下
  • 检测 ListView(或 ScrollView)内的滚动位置

    我正在构建一个聊天室应用程序 其中每 X 秒就会轮询一次新事件 每次发生这种情况时 此代码都会使用新数据更新 RoomAdapter ArrayAdapter 的自定义子类 并将其滚动到底部 RoomAdapter adapter Room
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • 异步更新后更新Android Listview

    我正在将 HTTP 调用从同步调用转换为异步调用 由于连接在后台运行 因此当我最初设置列表适配器时 数据不存在 如何在 HTTP 调用后更新列表适配器 我尝试了一些方法 例如在数据发送回之前不设置适配器并再次设置适配器 但没有任何效果 这是

随机推荐

  • 如何在服务器模式下运行H2数据库?

    我需要从我的应用程序以服务器模式启动 H2 数据库 尝试过以下代码 server Server createTcpServer start 这是连接的属性 javabase jdbc url jdbc h2 tcp localhost 90
  • Jekyll - 如何在根目录中创建页面?

    我正在使用 Jekyll 创建页面 文档建议 Jekyll 可以选择在根目录中创建页面 或为新页面创建新目录 From http jekyllrb com docs pages http jekyllrb com docs pages 页面
  • Log4Net 在单独的配置文件中

    我需要为新项目配置 log4net 当我将所有信息保存在 App config 文件中时 一切都工作得很好 我想把log4net的配置放在一个单独的配置文件中 取App1 config 这是我的 app config 完美运行
  • 三个不同表的内连接

    我在 Oracle APEX 工作 我想从三个不同的表中生成报告 患者 病史 治疗 通过INNER JOIN 表格如下 患者 Par Id Pk Pat Name Pat Gender 历史记录 His Id Pk Pat id Fk Tr
  • 生成精灵时指南针添加前斜线

    我刚刚生成了一个带有指南针的精灵 但由于某种原因 它在生成的类 url 中添加了一个前导斜杠 是否可以覆盖这个或者我的 config rb 中有什么错误 谢谢你的帮助 Joe 配置 rb gt http path css dir sass
  • 从嵌套列表创建新列表并将字符串转换为浮点数

    很抱歉问了一个已经被问过一百遍的问题 我是 Python 新手 我找到的解决方案似乎都不能解决我的问题 我有一个来自名为糖尿病的 csv 文件的嵌套列表 我在文件中读取并用逗号分隔元素 如下所示 for line in open diabe
  • .NET 日期时间转字符串

    有没有一种简单的方法可以将 DateTime 对象转换为这样的字符串表示形式 2010 03 03 10 38 48 我不确定上面的格式是什么 但它与通过 ToLongTimeString 等获得的模式不同 这是字符串生成器的情况吗 像这样
  • pyfunc_0 的返回值是 double,但需要 float

    我目前正在尝试更好地了解 Tensorflows CustomLayer 功能 在实现这样的自定义层时 我遇到了以下错误 usr lib python3 dist packages skimage util dtype py 110 Use
  • 在 CSS Grid 中为网格间隙设置不同的长度

    我正在使用 CSS 网格创建布局 并且希望每行之间有不同的空间 我可以通过在每个元素上使用边距来很好地创建布局 但这种方式掩盖了代码的简单性 有什么网格技巧可以实现这一点吗 grid row gap似乎只采用一个值 该值用于所有行 我想要实
  • 为什么 C# 结构体方法不能返回对字段的引用,但非成员方法可以?

    以下是结构体实例方法尝试将只读引用返回到结构体实例字段的示例 struct Foo internal int x public ref readonly int MemberGetX gt ref x Error CS8170 Struct
  • 从不同的表中获取数据并在mvc4中的View Index中显示

    我有2张桌子Work table and Employee table 我要显示emp id from Work table以及相应的emp name from Employee table在索引视图中Employee table 我的模型
  • LF 将在 git 中被 CRLF 取代 - 那是什么,重要吗? [复制]

    这个问题在这里已经有答案了 git init git add 对许多文件给出以下警告 该文件将在您的工作目录中保留其原始行结尾 警告 中的 LF 将被 CRLF 替换 LF 和 CRLF 有什么区别 对于这些警告我该怎么办 在 Unix 系
  • JS 中相当于 PHP 函数 number_format 的是什么?

    PHP 函数 function formatNumberForDisplay number decimal 0 decimalSeperator numberSeperator return number format number dec
  • Javascript:你能读懂系统卷吗?

    有没有办法用 Javascript 读取系统 Linux Windows OS X 等 的卷 我不需要设置它 只需读取它 thanks 我假设您正在谈论浏览器环境中的 Javascript 在这种情况下 答案是明确 简短和简单的 No 客户
  • 将 Iterable.sliding 输出为元组

    方法slidingon 集合以以下形式返回给定大小的滑动窗口X Iterable A X 是集合的类型 A 是元素类型 通常我需要两个或三个元素 并且我更喜欢给它们命名 一种丑陋的解决方法sliding 2 如下 points slidin
  • 如何使用util的promisify函数来promisify mongoDB?

    我想将 promisify 与 MongoDB 一起使用 我最后尝试了代码 连接正常 但函数 insertOne 不行 有人可以帮我吗 最好解释一下原因 以及使用 db collection 时的上下文是什么 我应该如何使用如下代码使函数
  • 是否可以使用 impala 查询包含 DATE 类型列的 Hive 表?

    每次我尝试在 IMPALA 中从 HIVE 中创建的表中选择 DATE 类型字段时 都会收到 AnalysisException Unsupported type DATE 有什么解决方法吗 UPDATE这是从 hive 创建表模式和 im
  • 多名开发人员和一个 Subversion 工作文件夹

    我们正在处理巨大的脚本语言网站 很难将其部署在每个开发人员工作站上 是否有人遇到过这样的情况 多个开发人员必须在服务器上的一个颠覆的工作文件夹中工作 这听起来是错误的 您将如何管理单独的登录 并发的更改 为了你自己的理智 使用多个厕所 看来
  • 如何使用addon SDK调用Firefox printpreview

    如何使用插件 SDK 调用 Firefox printpreview 最新 SDK 1 16 不包括 太感谢了 const getMostRecentBrowserWindow require sdk window utils var ch
  • 在 FragmentPagerAdapter 选项卡上显示图标

    这个示例是使用 C 在 Xamarin 中创建的 如果您知道 Java 中的答案 我也可以将其转换为 C 我正在使用FragmentPagerAdapter http developer android com reference andr