gpt4 book ai didi

android - ViewPagerIndicator 选项卡 : Icons above Text

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:59 25 4
gpt4 key购买 nike

我正在使用 ViewPagerIndicator我想更改选项卡样式,这样我就可以在文本上方获得图标,而不是默认设置,它将图标放在左侧,标题放在右侧。

最佳答案

之所以图标总是出现在左边,是因为这段代码:

if (iconResId != 0) {
tabView.setCompoundDrawablesWithIntrinsicBounds(iconResId, 0, 0, 0);
}

发现于 TabPageIndicator.java

这是私有(private)方法 (addTab()) 的一部分,因此,如果不修改库本身就无法更改。

幸运的是,这并不难做到。确保您下载了 ViewPagerIndicator 源代码,然后打开 TabPageIndicator.java

如果您想永久更改位置(尽可能永久更改源代码),请更改 setCompoundDrawablesWithIntrinsicBounds()iconResId 的位置。方法。例如,将图标放在顶部需要 iconResId 作为该方法的第二个参数。

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

如果您需要更灵活一点的东西,我提出了这些应该有效的更改(仍在 TabPageIndicator.java 中)。这些更改已被镜像 on my GitHub , 所以有一个工作示例。

成员变量:

/**
* Constants to improve readability - no magic numbers.
*/
public final static int LOCATION_LEFT =0;
public final static int LOCATION_UP = 1;
public final static int LOCATION_RIGHT = 2;
public final static int LOCATION_BOTTOM =3;

/**
* Stores the location of the tab icon
*/
private int location = LOCATION_LEFT;

/**
* Used to store the icon.
*/
private int [] drawables = new int [4];

/**
* Holds the value used by setCompoundDrawablesWithIntrinsicBounds used to denote no icon.
*/
private static int NO_ICON = 0;

添加这个方法:

public void setTabIconLocation (int newLocation){
if (location > LOCATION_BOTTOM || location < LOCATION_LEFT)
throw new IllegalArgumentException ("Invalid location");
this.location = newLocation;
for (int x = 0; x < drawables.length;x++){
drawables [x] = NO_ICON;
}
}

addTab()中,改变

if (iconResId != 0) {
tabView.setCompoundDrawablesWithIntrinsicBounds(iconResId, 0, 0, 0);
}

if (iconResId != 0) {
drawables [location] = iconResId;
tabView.setCompoundDrawablesWithIntrinsicBounds(drawables[0], drawables[1], drawables[2], drawables[3]);
}

非库实现(取自提供的示例代码)

TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
indicator.setTabIconLocation (TabPageIndicator.LOCATION_UP);
indicator.setViewPager(pager);

关于android - ViewPagerIndicator 选项卡 : Icons above Text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735278/

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