From ab8208019f4e65930c3bebcf2cb57382dcc8dd97 Mon Sep 17 00:00:00 2001 From: cgspine Date: Wed, 25 Sep 2019 21:11:10 +0800 Subject: [PATCH] skin for QMUITabSegment --- .../qmuiteam/qmui/skin/QMUISkinHelper.java | 36 +++++++ .../qmuiteam/qmui/skin/QMUISkinManager.java | 25 +++-- .../com/qmuiteam/qmui/widget/QMUITopBar.java | 4 +- .../qmui/widget/QMUITopBarLayout.java | 2 +- .../com/qmuiteam/qmui/widget/tab/QMUITab.java | 12 +-- .../qmui/widget/tab/QMUITabBuilder.java | 19 ++-- .../qmuiteam/qmui/widget/tab/QMUITabIcon.java | 5 +- .../qmui/widget/tab/QMUITabSegment.java | 37 ++++++-- .../qmuiteam/qmui/widget/tab/QMUITabView.java | 29 +++++- qmui/src/main/res/values/qmui_attrs.xml | 2 - qmui/src/main/res/values/qmui_attrs_base.xml | 7 +- .../src/main/res/values/qmui_style_widget.xml | 2 +- qmui/src/main/res/values/qmui_themes.xml | 61 +++++++----- .../QDTabSegmentFixModeFragment.java | 18 ++-- .../qmuidemo/fragment/home/HomeFragment.java | 7 +- .../fragment/util/QDNotchHelperFragment.java | 4 +- .../qmuidemo/manager/QDSkinManager.java | 6 +- .../res/layout/fragment_fsw_viewpager.xml | 2 - .../src/main/res/layout/fragment_home.xml | 4 +- .../layout/fragment_tab_viewpager_layout.xml | 6 +- qmuidemo/src/main/res/values/skin.xml | 67 ------------- qmuidemo/src/main/res/values/styles.xml | 30 ------ qmuidemo/src/main/res/values/theme.xml | 94 +++++++++++++++++++ 23 files changed, 285 insertions(+), 194 deletions(-) create mode 100644 qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinHelper.java delete mode 100644 qmuidemo/src/main/res/values/skin.xml create mode 100644 qmuidemo/src/main/res/values/theme.xml diff --git a/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinHelper.java b/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinHelper.java new file mode 100644 index 00000000..9e5f904a --- /dev/null +++ b/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinHelper.java @@ -0,0 +1,36 @@ +package com.qmuiteam.qmui.skin; + +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.view.View; + +import com.qmuiteam.qmui.R; +import com.qmuiteam.qmui.util.QMUIResHelper; + +import androidx.annotation.Nullable; + +public class QMUISkinHelper { + + public static int getSkinColor(View view, int colorAttr) { + Integer skin = (Integer) view.getTag(R.id.qmui_skin_current_index); + Resources.Theme theme; + if (skin == null || skin <= 0) { + theme = view.getContext().getTheme(); + } else { + theme = QMUISkinManager.getInstance(view.getContext()).getTheme(skin); + } + return QMUIResHelper.getAttrColor(theme, colorAttr); + } + + @Nullable + public static Drawable getSkinDrawable(View view, int drawableAttr) { + Integer skin = (Integer) view.getTag(R.id.qmui_skin_current_index); + Resources.Theme theme; + if (skin == null || skin <= 0) { + theme = view.getContext().getTheme(); + } else { + theme = QMUISkinManager.getInstance(view.getContext()).getTheme(skin); + } + return QMUIResHelper.getAttrDrawable(view.getContext(), theme, drawableAttr); + } +} diff --git a/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinManager.java b/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinManager.java index beb9bb3b..20854b2f 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinManager.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/skin/QMUISkinManager.java @@ -82,7 +82,7 @@ public final class QMUISkinManager { private Resources mResources; private String mPackageName; - private SparseArray mThemes = new SparseArray<>(); + private SparseArray mSkins = new SparseArray<>(); private HashMap mRuleHandlers = new HashMap<>(); // Actually, ViewGroup.OnHierarchyChangeListener is a better choice, but it only has a setter. @@ -149,7 +149,7 @@ public final class QMUISkinManager { @Nullable public Resources.Theme getTheme(int skinIndex) { - SkinItem skinItem = mThemes.get(skinIndex); + SkinItem skinItem = mSkins.get(skinIndex); if (skinItem != null) { return skinItem.getTheme(); } @@ -158,8 +158,11 @@ public final class QMUISkinManager { @MainThread - public void addTheme(int index, int styleRes) { - SkinItem skinItem = mThemes.get(index); + public void addSkin(int index, int styleRes) { + if(index <= 0){ + throw new IllegalArgumentException("index must greater than 0"); + } + SkinItem skinItem = mSkins.get(index); if (skinItem != null) { if (skinItem.getStyleRes() == styleRes) { return; @@ -167,7 +170,7 @@ public final class QMUISkinManager { throw new RuntimeException("already exist the theme item for " + index); } skinItem = new SkinItem(styleRes); - mThemes.append(index, skinItem); + mSkins.append(index, skinItem); } @@ -178,7 +181,7 @@ public final class QMUISkinManager { if (view == null) { return; } - SkinItem skinItem = mThemes.get(skinIndex); + SkinItem skinItem = mSkins.get(skinIndex); Resources.Theme theme; if (skinItem == null) { if (skinIndex != DEFAULT_SKIN) { @@ -232,7 +235,13 @@ public final class QMUISkinManager { Map attrs = getSkinAttrs(view); if (view instanceof IQMUISkinHandlerView) { ((IQMUISkinHandlerView) view).handle(this, skinIndex, theme, attrs); - } else if (attrs != null) { + } else{ + defaultHandleSkinAttrs(view, theme, attrs); + } + } + + public void defaultHandleSkinAttrs(@NonNull View view, Resources.Theme theme, Map attrs){ + if(attrs != null){ for (String key : attrs.keySet()) { Integer attr = attrs.get(key); if (attr == null) { @@ -242,7 +251,6 @@ public final class QMUISkinManager { } } } - public void defaultHandleSkinAttr(View view, Resources.Theme theme, String name, int attr) { if (attr == 0) { return; @@ -317,4 +325,5 @@ public final class QMUISkinManager { return theme; } } + } diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBar.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBar.java index f6cb1d57..a9dc6c95 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBar.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBar.java @@ -90,7 +90,7 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi private int mTopBarHeight = -1; private Rect mTitleContainerRect; - private HashMap mDefaultSkinAttrs = new HashMap<>(); + private Map mDefaultSkinAttrs = new HashMap<>(); public QMUITopBar(Context context) { this(context, null); @@ -112,7 +112,7 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi mLeftViewList = new ArrayList<>(); mRightViewList = new ArrayList<>(); mDefaultSkinAttrs.put(QMUISkinValueBuilder.BOTTOM_SEPARATOR, R.attr.qmui_topbar_separator_color); - mDefaultSkinAttrs.put(QMUISkinValueBuilder.BACKGROUND, R.attr.qmui_topbar_bg_color); + mDefaultSkinAttrs.put(QMUISkinValueBuilder.BACKGROUND, R.attr.qmui_topbar_bg); mDefaultSkinAttrs.put(QMUISkinValueBuilder.BTN_TEXT_COLOR, R.attr.qmui_topbar_text_btn_color_state_list); mDefaultSkinAttrs.put(QMUISkinValueBuilder.TINT_COLOR, R.attr.qmui_topbar_image_tint_color); diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBarLayout.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBarLayout.java index aae7ff26..0fb2ebf6 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBarLayout.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/QMUITopBarLayout.java @@ -61,7 +61,7 @@ public class QMUITopBarLayout extends QMUIFrameLayout implements IQMUISkinDefaul public QMUITopBarLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mDefaultSkinAttrs.put(QMUISkinValueBuilder.BOTTOM_SEPARATOR, R.attr.qmui_topbar_separator_color); - mDefaultSkinAttrs.put(QMUISkinValueBuilder.BACKGROUND, R.attr.qmui_topbar_bg_color); + mDefaultSkinAttrs.put(QMUISkinValueBuilder.BACKGROUND, R.attr.qmui_topbar_bg); mTopBar = new QMUITopBar(context, attrs, defStyleAttr); mTopBar.setBackground(null); mTopBar.updateBottomDivider(0, 0, 0, 0); diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITab.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITab.java index 746b427e..da2ea3bf 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITab.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITab.java @@ -50,8 +50,8 @@ public class QMUITab { int selectedTextSize; Typeface normalTypeface; Typeface selectedTypeface; - int normalColor; - int selectedColor; + int normalColorAttr; + int selectedColorAttr; int normalTabIconWidth = QMUITabIcon.TAB_ICON_INTRINSIC; int normalTabIconHeight = QMUITabIcon.TAB_ICON_INTRINSIC; float selectedTabIconScale = 1f; @@ -128,12 +128,12 @@ public class QMUITab { } - public int getNormalColor() { - return normalColor; + public int getNormalColorAttr() { + return normalColorAttr; } - public int getSelectedColor() { - return selectedColor; + public int getSelectedColorAttr() { + return selectedColorAttr; } public int getNormalTextSize() { diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabBuilder.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabBuilder.java index 9971d257..8ca0de66 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabBuilder.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabBuilder.java @@ -20,6 +20,7 @@ import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.view.Gravity; +import com.qmuiteam.qmui.R; import com.qmuiteam.qmui.util.QMUIDisplayHelper; import androidx.annotation.Nullable; @@ -53,11 +54,11 @@ public class QMUITabBuilder { /** * text color(icon color in if dynamicChangeIconColor == true) in normal state */ - private int normalColor; + private int normalColorAttr = R.attr.qmui_tab_normal_color; /** * text color(icon color in if dynamicChangeIconColor == true) in selected state */ - private int selectedColor; + private int selectedColorAttr = R.attr.qmui_tab_selected_color; /** * icon position(left/top/right/bottom) */ @@ -137,8 +138,8 @@ public class QMUITabBuilder { this.dynamicChangeIconColor = other.dynamicChangeIconColor; this.normalTextSize = other.normalTextSize; this.selectTextSize = other.selectTextSize; - this.normalColor = other.normalColor; - this.selectedColor = other.selectedColor; + this.normalColorAttr = other.normalColorAttr; + this.selectedColorAttr = other.selectedColorAttr; this.iconPosition = other.iconPosition; this.gravity = other.gravity; this.text = other.text; @@ -211,9 +212,9 @@ public class QMUITabBuilder { return this; } - public QMUITabBuilder setColor(int normalColor, int selectedColor) { - this.normalColor = normalColor; - this.selectedColor = selectedColor; + public QMUITabBuilder setColorAttr(int normalColorAttr, int selectedColorAttr) { + this.normalColorAttr = normalColorAttr; + this.selectedColorAttr = selectedColorAttr; return this; } @@ -256,8 +257,8 @@ public class QMUITabBuilder { tab.selectedTextSize = this.selectTextSize; tab.normalTypeface = this.normalTypeface; tab.selectedTypeface = this.selectedTypeface; - tab.normalColor = this.normalColor; - tab.selectedColor = this.selectedColor; + tab.normalColorAttr = this.normalColorAttr; + tab.selectedColorAttr = this.selectedColorAttr; tab.signCount = this.signCount; tab.signCountDigits = this.signCountDigits; tab.signCountLeftMarginWithIconOrText = this.signCountLeftMarginWithIconOrText; diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabIcon.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabIcon.java index b73923d0..7c2141f7 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabIcon.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabIcon.java @@ -35,7 +35,10 @@ public class QMUITabIcon extends Drawable { private final @Nullable Drawable mSelectedIconDrawable; public QMUITabIcon(@NonNull Drawable normalIconDrawable, @Nullable Drawable selectedIconDrawable) { - mNormalIconDrawable = normalIconDrawable; + mNormalIconDrawable = normalIconDrawable.mutate(); + if(selectedIconDrawable != null){ + selectedIconDrawable = selectedIconDrawable.mutate(); + } mSelectedIconDrawable = selectedIconDrawable; mNormalIconDrawable.setAlpha(255); int nw = mNormalIconDrawable.getIntrinsicWidth(); diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabSegment.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabSegment.java index ebe291d6..667dfb89 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabSegment.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabSegment.java @@ -19,6 +19,7 @@ package com.qmuiteam.qmui.widget.tab; import android.animation.Animator; import android.animation.ValueAnimator; import android.content.Context; +import android.content.res.Resources; import android.content.res.TypedArray; import android.database.DataSetObserver; import android.graphics.Canvas; @@ -33,6 +34,11 @@ import com.qmuiteam.qmui.QMUIInterpolatorStaticHolder; import com.qmuiteam.qmui.R; import com.qmuiteam.qmui.layout.IQMUILayout; import com.qmuiteam.qmui.layout.QMUILayoutHelper; +import com.qmuiteam.qmui.skin.IQMUISkinHandlerView; +import com.qmuiteam.qmui.skin.QMUISkinHelper; +import com.qmuiteam.qmui.skin.QMUISkinManager; +import com.qmuiteam.qmui.skin.QMUISkinValueBuilder; +import com.qmuiteam.qmui.skin.defaultAttr.IQMUISkinDefaultAttrProvider; import com.qmuiteam.qmui.util.QMUIColorHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIResHelper; @@ -41,7 +47,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.ref.WeakReference; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import androidx.annotation.ColorInt; import androidx.annotation.IntDef; @@ -100,7 +108,7 @@ import androidx.viewpager.widget.ViewPager; * @author cginechen * @date 2016-01-27 */ -public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout { +public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout, IQMUISkinHandlerView, IQMUISkinDefaultAttrProvider { private static final String TAG = "QMUITabSegment"; @@ -147,6 +155,7 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout private AdapterChangeListener mAdapterChangeListener; private boolean mIsInSelectTab = false; private QMUILayoutHelper mLayoutHelper; + private Map mDefaultSkinAttrs = new HashMap<>(); public QMUITabSegment(Context context) { this(context, null); @@ -183,10 +192,6 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout indicatorTop, indicatorWidthFollowContent); // tabBuilder - int normalTextColor = array.getColor(R.styleable.QMUITabSegment_qmui_tab_normal_color, - ContextCompat.getColor(context, R.color.qmui_config_color_gray_5)); - int selectedTextColor = array.getColor(R.styleable.QMUITabSegment_qmui_tab_selected_color, - QMUIResHelper.getAttrColor(context, R.attr.qmui_config_color_blue)); int normalTextSize = array.getDimensionPixelSize( R.styleable.QMUITabSegment_android_textSize, getResources().getDimensionPixelSize(R.dimen.qmui_tab_segment_text_size)); @@ -196,7 +201,6 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout selectedTextSize = array.getDimensionPixelSize( R.styleable.QMUITabSegment_qmui_tab_selected_text_size, selectedTextSize); mTabBuilder = new QMUITabBuilder(context) - .setColor(normalTextColor, selectedTextColor) .setTextSize(normalTextSize, selectedTextSize) .setIconPosition(array.getInt(R.styleable.QMUITabSegment_qmui_tab_icon_position, QMUITab.ICON_POSITION_LEFT)); @@ -210,6 +214,10 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout addView(mContentLayout, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT)); mTabAdapter = createTabAdapter(mContentLayout); + + mDefaultSkinAttrs.put(QMUISkinValueBuilder.BOTTOM_SEPARATOR, R.attr.qmui_tab_separator_color); + mDefaultSkinAttrs.put(QMUISkinValueBuilder.TOP_SEPARATOR, R.attr.qmui_tab_separator_color); + mDefaultSkinAttrs.put(QMUISkinValueBuilder.BACKGROUND, R.attr.qmui_tab_bg); } protected QMUITabAdapter createTabAdapter(ViewGroup tabParentView) { @@ -564,7 +572,7 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout if (model == null || mIndicator == null) { return; } - mIndicator.updateInfo(model.contentLeft, model.contentWidth, model.selectedColor); + mIndicator.updateInfo(model.contentLeft, model.contentWidth, QMUISkinHelper.getSkinColor(this, model.selectedColorAttr)); if (invalidate) { mContentLayout.invalidate(); } @@ -579,7 +587,9 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout final int targetLeft = (int) (preModel.contentLeft + leftDistance * offsetPercent); final int targetWidth = (int) (preModel.contentWidth + widthDistance * offsetPercent); int indicatorColor = QMUIColorHelper.computeColor( - preModel.selectedColor, targetModel.selectedColor, offsetPercent); + QMUISkinHelper.getSkinColor(this, preModel.selectedColorAttr), + QMUISkinHelper.getSkinColor(this, targetModel.selectedColorAttr), + offsetPercent); mIndicator.updateInfo(targetLeft, targetWidth, indicatorColor); mContentLayout.invalidate(); } @@ -1307,4 +1317,15 @@ public class QMUITabSegment extends HorizontalScrollView implements IQMUILayout mLayoutHelper.dispatchRoundBorderDraw(canvas); super.onDraw(canvas); } + + @Override + public Map getDefaultSkinAttrs() { + return mDefaultSkinAttrs; + } + + @Override + public void handle(QMUISkinManager manager, int skinIndex, Resources.Theme theme, Map attrs) { + layoutIndicator(mTabAdapter.getItem(mCurrentSelectedIndex), true); + manager.defaultHandleSkinAttrs(this, theme, attrs); + } } diff --git a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java index 73a3a8ef..7c3134ab 100644 --- a/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java +++ b/qmui/src/main/java/com/qmuiteam/qmui/widget/tab/QMUITabView.java @@ -18,6 +18,7 @@ package com.qmuiteam.qmui.widget.tab; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Point; import android.view.GestureDetector; @@ -30,18 +31,23 @@ import android.widget.FrameLayout; import android.widget.TextView; import com.qmuiteam.qmui.R; +import com.qmuiteam.qmui.skin.IQMUISkinHandlerView; +import com.qmuiteam.qmui.skin.QMUISkinHelper; +import com.qmuiteam.qmui.skin.QMUISkinManager; import com.qmuiteam.qmui.util.QMUICollapsingTextHelper; import com.qmuiteam.qmui.util.QMUIColorHelper; import com.qmuiteam.qmui.util.QMUILangHelper; import com.qmuiteam.qmui.util.QMUIResHelper; +import java.util.Map; + import androidx.annotation.NonNull; import androidx.core.view.GravityCompat; import androidx.core.view.ViewCompat; // todo custom view // todo gravity -public class QMUITabView extends FrameLayout { +public class QMUITabView extends FrameLayout implements IQMUISkinHandlerView { private QMUITab mTab; private QMUICollapsingTextHelper mCollapsingTextHelper; @@ -122,8 +128,10 @@ public class QMUITabView extends FrameLayout { public void bind(QMUITab tab) { mCollapsingTextHelper.setTextSize(tab.normalTextSize, tab.selectedTextSize, false); - mCollapsingTextHelper.setTextColor(ColorStateList.valueOf(tab.normalColor), - ColorStateList.valueOf(tab.selectedColor), false); + mCollapsingTextHelper.setTextColor( + ColorStateList.valueOf(QMUISkinHelper.getSkinColor(this, tab.normalColorAttr)), + ColorStateList.valueOf(QMUISkinHelper.getSkinColor(this, tab.selectedColorAttr)), + false); mCollapsingTextHelper.setTypeface(tab.normalTypeface, tab.selectedTypeface, false); int gravity = Gravity.LEFT | Gravity.TOP; mCollapsingTextHelper.setGravity(gravity, gravity, false); @@ -165,7 +173,9 @@ public class QMUITabView extends FrameLayout { QMUITabIcon tabIcon = mTab.getTabIcon(); if (tabIcon != null) { tabIcon.setSelectFraction(fraction, - QMUIColorHelper.computeColor(mTab.normalColor, mTab.selectedColor, fraction)); + QMUIColorHelper.computeColor( + QMUISkinHelper.getSkinColor(this, mTab.normalColorAttr), + QMUISkinHelper.getSkinColor(this, mTab.selectedColorAttr), fraction)); } updateCurrentInfo(fraction); mCollapsingTextHelper.setExpansionFraction(1 - fraction); @@ -648,6 +658,17 @@ public class QMUITabView extends FrameLayout { canvas.restore(); } + @Override + public void handle(QMUISkinManager manager, int skinIndex, Resources.Theme theme, Map attrs) { + if(mTab != null){ + mCollapsingTextHelper.setTextColor( + ColorStateList.valueOf(QMUISkinHelper.getSkinColor(this, mTab.normalColorAttr)), + ColorStateList.valueOf(QMUISkinHelper.getSkinColor(this, mTab.selectedColorAttr)), + true); + invalidate(); + } + } + public interface Callback { void onClick(QMUITabView view); diff --git a/qmui/src/main/res/values/qmui_attrs.xml b/qmui/src/main/res/values/qmui_attrs.xml index b0dc61e1..2f15164a 100755 --- a/qmui/src/main/res/values/qmui_attrs.xml +++ b/qmui/src/main/res/values/qmui_attrs.xml @@ -79,8 +79,6 @@ - - diff --git a/qmui/src/main/res/values/qmui_attrs_base.xml b/qmui/src/main/res/values/qmui_attrs_base.xml index ae9cb6cd..aa82546d 100644 --- a/qmui/src/main/res/values/qmui_attrs_base.xml +++ b/qmui/src/main/res/values/qmui_attrs_base.xml @@ -172,7 +172,7 @@ ***********************************************--> - + @@ -208,6 +208,11 @@ + + + + + diff --git a/qmui/src/main/res/values/qmui_style_widget.xml b/qmui/src/main/res/values/qmui_style_widget.xml index 56383db9..0bebf4ff 100644 --- a/qmui/src/main/res/values/qmui_style_widget.xml +++ b/qmui/src/main/res/values/qmui_style_widget.xml @@ -85,7 +85,7 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/qmuidemo/src/main/res/values/styles.xml b/qmuidemo/src/main/res/values/styles.xml index 30382826..12d62718 100644 --- a/qmuidemo/src/main/res/values/styles.xml +++ b/qmuidemo/src/main/res/values/styles.xml @@ -15,36 +15,6 @@ --> - - - + + + + + + + + \ No newline at end of file