我正在使用SlidingTabLayout,我想从右向左滑动标签,但我找不到方法。
我已经尝试'setGravity()'方法,但它不起作用。
答案 0 :(得分:3)
也许您需要尝试布局镜像:
要利用RTL布局镜像,只需对您的应用进行以下更改:
在您的应用清单中声明您的应用支持RTL镜像。 具体来说,将android:supportsRtl =“true”添加到清单文件中的元素。
将所有应用的“左/右”布局属性更改为新的“开始/结束”等效项。 如果您将应用程序定位到Android 4.2(应用程序的targetSdkVersion或minSdkVersion为17或更高),那么您应该使用“开始”和“结束”而不是“左”和“右”。例如,android:paddingLeft应该成为android:paddingStart。 如果您希望您的应用程序使用早于Android 4.2的版本(应用程序的targetSdkVersion或minSdkVersion为16或更低),那么您应该添加“开始”并结束“除了”左“和”右“。例如,你同时使用android:paddingLeft和android:paddingStart。
答案 1 :(得分:0)
答案 2 :(得分:0)
我已尝试通过以下方法解决此问题:
private void scrollToTab(int tabIndex, int positionOffset) {
if (isRtlMode()) {
scrollToTabRtl(tabIndex, positionOffset);
} else {
scrollToLtr(tabIndex, positionOffset);
}
}
private void scrollToTabRtl(int tabIndex, int positionOffset) {
final int maxItemCount = mTabStrip.getChildCount();
if (maxItemCount == 0 || tabIndex < 0 || tabIndex >= maxItemCount) {
return;
}
View activeItemView = mTabStrip.getChildAt(tabIndex);
if (activeItemView != null) {
int totalWidth = getWidth();
int targetScroll = totalWidth - activeItemView.getRight() + positionOffset;
super.smoothScrollTo(-targetScroll, 0);
}
}