gpt4 book ai didi

android - 将 TextView 传递给 TabSpec 的 setIndicator 方法时,是否存在状态可绘制对象丢失的解决方法?

转载 作者:行者123 更新时间:2023-11-29 22:29:21 24 4
gpt4 key购买 nike

我正在一个应用程序中实现选项卡式布局,其中垂直屏幕空间至关重要,因此我调整了 XML 布局中选项卡的高度。这些选项卡没有图标可绘制资源,它们有基本的文本标签。以编程方式设置 TabSpec 时,我正在使用 setIndicator(CharSequence) 方法,但似乎即使使用此方法,Android 操作系统也会为图标保留选项卡的顶部,并且它似乎也会调整大小从下往上的选项卡。结果,我的选项卡太短了,以至于看不到选项卡上的文本标签。

根据我通过谷歌搜索以及其他 Stack Overflow 问题收集到的信息,解决此问题的最佳方法是为指示器使用 TextView 而不是 CharSequence。因此,我尝试以编程方式声明一个新的 TextView,然后将其传递给 setIndicator 方法。文本标签现在可见,但是,该选项卡绝对没有视觉样式/状态可绘制对象。此外,如果该选项卡处于 Activity 状态,则由于缺少状态可绘制对象,文本本身将不再可见。这显然也是一个问题。

我想发布我正在使用的代码,但项目的性质不允许我共享任何源代码。但是我可以说以下内容:

  • 在以编程方式创建 TextView 时,我尝试做的工作很少,只是设置文本,一直到使用 LayoutParams(int, int)setBackgroundColor 和许多其他属性。我试过为背景颜色使用完全透明的值。没有用。
  • 我没有尝试将 TextView 创建为 XML 资源并以这种方式使用它,尽管我看不出这会如何改变结果。

所以我的问题如下:

有什么方法可以实现只有文本标签的短选项卡,而无需经过扩展类或创建状态可绘制资源集的过程?虽然这些大多是简单的任务,但这个应用程序的本质是它的周转时间非常短,而且演示/用户界面是最不重要的;目前功能是第一位的,如果我可以通过使用提供的 UI 元素节省时间,那么这是我更愿意采用的方法,因为我真的没有能力在我的工作站上下载一堆图形编辑软件而不会头疼而且我也是唯一一个在这个项目上工作的人,此外,也是这里唯一一个被允许在这个项目上工作的人。对于整个事件的含糊不清,我深表歉意。

提前致谢。

最佳答案

请引用我在 question 中的回答.

我使用这段代码来设置指标

TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;

intent = new Intent().setClass(this, activity1.class);
spec = tabHost.newTabSpec("tab1").setIndicator("tab1").setContent(intent);
tabHost.addTab(spec);

intent = new Intent().setClass(this, activity2.class);
spec = tabHost.newTabSpec("tab2").setIndicator("tab2").setContent(intent);
tabHost.addTab(spec);
...
// set height of tabs
tabHost.getTabWidget().getChildAt(0).getLayoutParams().height = 30; // where child 0 refers "tab1"
tabHost.getTabWidget().getChildAt(1).getLayoutParams().height = 30; // where child 1 refers "tab2"

希望对您有所帮助。

关于android - 将 TextView 传递给 TabSpec 的 setIndicator 方法时,是否存在状态可绘制对象丢失的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4786260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com