Skip to content

Commit 4748a73

Browse files
Fix bug when indicatorAlwaysInCenter is true and tabHost has only two tabs.
1 parent 2a9c004 commit 4748a73

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

library/src/main/java/com/ogaclejapan/smarttablayout/SmartTabLayout.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,9 @@ public SmartTabLayout(Context context, AttributeSet attrs, int defStyle) {
154154
throw new UnsupportedOperationException(
155155
"'distributeEvenly' and 'indicatorAlwaysInCenter' both use does not support");
156156
}
157-
157+
if(tabStrip.isIndicatorAlwaysInCenter()){
158+
tabStrip.setMinimumWidth(Utils.getDisplayMetrics(context).widthPixels);
159+
}
158160
addView(tabStrip, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
159161

160162
}

library/src/main/java/com/ogaclejapan/smarttablayout/Utils.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,13 @@
1616
*/
1717
package com.ogaclejapan.smarttablayout;
1818

19+
import android.content.Context;
1920
import android.support.v4.view.MarginLayoutParamsCompat;
2021
import android.support.v4.view.ViewCompat;
22+
import android.util.DisplayMetrics;
2123
import android.view.View;
2224
import android.view.ViewGroup;
25+
import android.view.WindowManager;
2326

2427
final class Utils {
2528

@@ -77,6 +80,13 @@ static int getMarginHorizontally(View v) {
7780
return MarginLayoutParamsCompat.getMarginStart(lp) + MarginLayoutParamsCompat.getMarginEnd(lp);
7881
}
7982

83+
static DisplayMetrics getDisplayMetrics(final Context context) {
84+
final WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
85+
final DisplayMetrics metrics = new DisplayMetrics();
86+
wm.getDefaultDisplay().getMetrics(metrics);
87+
return metrics;
88+
}
89+
8090
private Utils() { }
8191

8292
}

0 commit comments

Comments
 (0)