相关疑难解决方法(0)

没有图标的标签

我正在看一下"Tab Layout"教程,这个教程非常简单,我的问题非常简单:是否可以创建没有图标的标签,只有一个标题?

layout icons tabs android

13
推荐指数
1
解决办法
5714
查看次数

我可以在自定义标签视图中使用默认标签样式吗?

我的主要活动是TabActivity,但我的标签不需要图标.我知道我可以使用重载TabHost.TabSpec.setIndicator(CharSequence label)方法省略该图标,如本问题所述.

但是图标所在的空间仍然保留,因此浪费了大量空间.在这个问题中已经提到了这一点.看来我不能只降低标签高度.我必须提供我自己ViewTabHost.TabSpec.setIndicator(View view)超载.

很好,但我想确保其余的样式(背景/着色)在所有设备上始终保持"android",就像我使用了默认的标签指示器一样.所以我不想提供自己的颜色.

我发现@android:color/tab_indicator_text并使用它TextView的文本颜色似乎按预期工作.但我不知道从哪里获得默认的tab-background-colors.我也发现了这种@android:style/Widget.TabWidget风格,但是它既不适用TextView也不适用于周围环境LinearLayout似乎有所帮助.

这是我的标签指示器视图xml文件,取自一些教程:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:padding="12dip" >

    <TextView
        android:id="@+id/tabText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/tab_indicator_text" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

如何获得"android默认"选项卡样式?


编辑:接下来,我尝试添加默认选项卡setIndicator(CharSequence),获取getBackground其指标视图的drawable,清除所有选项卡,添加我的自定义视图(见上文),然后将我检索到的drawable放入setBackground新指标.

结果看起来很正确,有点不对劲.首先,它们太高了,所以我什么都没得到.另一方面,所有选项卡的背景状态现在以某种方式链接(活动,突出显示,选择等).使用mutate()上绘制(S)没有帮助的.下一个技巧:我添加了三个默认选项卡,获取了所有背景,清除了它们,并给了我自己的三个选项卡,每个选项卡一个背景.

那么,这解决了第二个问题.他们的州不再联系在一起.但它们仍然太高了.所以我减少了TabWidget使用的高度updateViewLayout.这样可行,但在选项卡指示器的顶部留下变色条.

实际上,我最终会遇到与使用该TabHost.TabSpec.setIndicator(CharSequence label)方法时相同的情况.无论如何,所有这些黑客让我觉得很脏.是不是有一种优雅的方式来获得自定义视图上的默认android样式?

tabs android android-tabhost

11
推荐指数
1
解决办法
8948
查看次数

标签 统计

android ×2

tabs ×2

android-tabhost ×1

icons ×1

layout ×1