Make SlidingTabLayout fully stylable
Make the tabs look the same as they looked when we used the
PagerTabStrip.
Change-Id: I3180f943aaf8d14b5802d158eec7294d171abb1f
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java b/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
index 947d35e..45c4eed 100644
--- a/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
+++ b/app/src/main/java/com/google/reviewit/PagedChangeDetailsFragment.java
@@ -86,8 +86,12 @@
});
SlidingTabLayout tabs = ((SlidingTabLayout) v(R.id.tabs));
+ tabs.setTextColor(widgetUtil.color(R.color.tab));
tabs.setSelectedIndicatorColors(widgetUtil.color(R.color.tab));
+ tabs.setBorderColor(widgetUtil.color(R.color.tab));
tabs.setDividerColors(widgetUtil.color(R.color.tabDivider));
+ tabs.setBottomBorderThickness(widgetUtil.dpToPx(1));
+ tabs.setSelectedIndicatorThickness(widgetUtil.dpToPx(5));
tabs.setViewPager(pager);
}
}
diff --git a/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java b/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
index 61e9ef5..20904e4 100644
--- a/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
+++ b/app/src/main/java/com/google/reviewit/widget/SlidingTabLayout.java
@@ -74,6 +74,8 @@
private int mTabViewLayoutId;
private int mTabViewTextViewId;
+ private int mTextColor = -1;
+
private ViewPager mViewPager;
private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
@@ -128,6 +130,22 @@
mTabStrip.setDividerColors(colors);
}
+ public void setTextColor(int color) {
+ mTextColor = color;
+ }
+
+ public void setBorderColor(int color) {
+ mTabStrip.setBorderColor(color);
+ }
+
+ public void setBottomBorderThickness(int bottomBorderThickness) {
+ mTabStrip.setBottomBorderThickness(bottomBorderThickness);
+ }
+
+ public void setSelectedIndicatorThickness(int selectedIndicatorThickness) {
+ mTabStrip.setSelectedIndicatorThickness(selectedIndicatorThickness);
+ }
+
/**
* Set the {@link ViewPager.OnPageChangeListener}. When using {@link SlidingTabLayout} you are
* required to set any {@link ViewPager.OnPageChangeListener} through this method. This is so
@@ -218,6 +236,10 @@
}
tabTitleView.setText(adapter.getPageTitle(i));
+ if (mTextColor != -1) {
+ tabTitleView.setTextColor(mTextColor);
+ }
+
tabView.setOnClickListener(tabClickListener);
mTabStrip.addView(tabView);
diff --git a/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java b/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
index c8b9701..817cfc4 100644
--- a/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
+++ b/app/src/main/java/com/google/reviewit/widget/SlidingTabStrip.java
@@ -37,10 +37,10 @@
private static final byte DEFAULT_DIVIDER_COLOR_ALPHA = 0x20;
private static final float DEFAULT_DIVIDER_HEIGHT = 0.5f;
- private final int mBottomBorderThickness;
+ private int mBottomBorderThickness;
private final Paint mBottomBorderPaint;
- private final int mSelectedIndicatorThickness;
+ private int mSelectedIndicatorThickness;
private final Paint mSelectedIndicatorPaint;
private final int mDefaultBottomBorderColor;
@@ -107,6 +107,21 @@
invalidate();
}
+ void setBorderColor(int color) {
+ mBottomBorderPaint.setColor(color);
+ invalidate();
+ }
+
+ void setBottomBorderThickness(int bottomBorderThickness) {
+ mBottomBorderThickness = bottomBorderThickness;
+ invalidate();
+ }
+
+ void setSelectedIndicatorThickness(int selectedIndicatorThickness) {
+ mSelectedIndicatorThickness = selectedIndicatorThickness;
+ invalidate();
+ }
+
void onViewPagerPageChanged(int position, float positionOffset) {
mSelectedPosition = position;
mSelectionOffset = positionOffset;