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;