1

我通常在提问之前会google和研究一些东西,但是这次我没有以正常的方式找到答案,所以我不得不寻求你的帮助,各位程序员。

我正在使用ViewPagerIndicator,特别是 TabPageIndicator 类,并且希望在不修改库的情况下实现以下目标:从选项卡中删除测试标签并水平居中图标。虽然第一部分非常微不足道(只是null从返回getPageTitle()),但第二部分让我感到困惑,因为除了使用参数之外,我无法找到将图标放置在中心的明显方法margin,这是完全错误和不可接受的,因为你可以想象。

最明显的设置gravityinvpi_styles.xml不起作用:

<style name="Widget.TabPageIndicator" parent="Widget">
    <item name="android:gravity">center_horizontal|center_vertical</item>
    <item name="android:background">@drawable/vpi__tab_indicator</item>
    <item name="android:paddingLeft">22dip</item>
    <item name="android:paddingRight">22dip</item>
    <item name="android:paddingTop">12dp</item>
    <item name="android:paddingBottom">12dp</item>
    <item name="android:textAppearance">@style/TextAppearance.TabPageIndicator</item>
    <item name="android:textSize">12sp</item>
    <item name="android:maxLines">1</item>
    <item name="android:width">60dp</item>
    <item name="android:height">48dp</item>
    <item name="android:layout_marginLeft">40dp</item>
</style>

<style name="Widget.IconPageIndicator" parent="Widget">
    <item name="android:gravity">center_horizontal|center_vertical</item>
</style>
4

3 回答 3

5

不幸的是,我似乎搜索得不够彻底:我使用了这里的第二个答案并通过修改TabPageIndicator.java文件获得了所需的效果:

改变了

tabView.setCompoundDrawablesWithIntrinsicBounds(iconResId, 0, 0, 0);

tabView.setCompoundDrawablesWithIntrinsicBounds(0, iconResId, 0, 0);

我的图标居中。

于 2013-07-14T13:08:47.333 回答
1

我已经修改了 ViewPagerIndicator Lib,并添加了对 IconsOnly 选项卡的支持
https://github.com/JafarKhQ/Android-ViewPagerIndicator

于 2013-07-14T13:11:17.967 回答
0

我所做的是创建 TabPageIndicator 的副本并进行必要的更改以仅表示单元格中的图标和中心。

要使用它,只需从此 gist 复制 IconCenterPageIndicator.java

https://gist.github.com/pedrolaranjeiro/2a0aac0723e44e54c621

到 com.viewpagerindicator 并按照 XML 和适配器示例来实现您正在寻找的内容。

于 2015-04-05T16:21:40.217 回答