mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Add support for TabView CSS
This commit is contained in:
@@ -123,6 +123,28 @@ public class TabLayout extends HorizontalScrollView {
|
|||||||
*/
|
*/
|
||||||
public void setSelectedIndicatorColors(int... colors) {
|
public void setSelectedIndicatorColors(int... colors) {
|
||||||
mTabStrip.setSelectedIndicatorColors(colors);
|
mTabStrip.setSelectedIndicatorColors(colors);
|
||||||
|
this.mSelectedIndicatorColors = colors;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int[] mSelectedIndicatorColors;
|
||||||
|
public int[] getSelectedIndicatorColors() {
|
||||||
|
return this.mSelectedIndicatorColors;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTabTextColor(Integer color){
|
||||||
|
mTabStrip.setTabTextColor(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getTabTextColor(){
|
||||||
|
return mTabStrip.getTabTextColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectedTabTextColor(Integer color){
|
||||||
|
mTabStrip.setSelectedTabTextColor(color);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getSelectedTabTextColor(){
|
||||||
|
return mTabStrip.getSelectedTabTextColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -21,10 +21,13 @@ import android.content.Context;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
import android.util.Log;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
class TabStrip extends LinearLayout {
|
class TabStrip extends LinearLayout {
|
||||||
|
|
||||||
@@ -47,6 +50,10 @@ class TabStrip extends LinearLayout {
|
|||||||
private TabLayout.TabColorizer mCustomTabColorizer;
|
private TabLayout.TabColorizer mCustomTabColorizer;
|
||||||
private final SimpleTabColorizer mDefaultTabColorizer;
|
private final SimpleTabColorizer mDefaultTabColorizer;
|
||||||
|
|
||||||
|
private int mDefaultTabTextColor;
|
||||||
|
private Integer mTabTextColor;
|
||||||
|
private Integer mSelectedTabTextColor;
|
||||||
|
|
||||||
TabStrip(Context context) {
|
TabStrip(Context context) {
|
||||||
this(context, null);
|
this(context, null);
|
||||||
}
|
}
|
||||||
@@ -74,6 +81,9 @@ class TabStrip extends LinearLayout {
|
|||||||
|
|
||||||
mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density);
|
mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density);
|
||||||
mSelectedIndicatorPaint = new Paint();
|
mSelectedIndicatorPaint = new Paint();
|
||||||
|
|
||||||
|
TextView defaultTextView = new TextView(context);
|
||||||
|
mDefaultTabTextColor = defaultTextView.getTextColors().getDefaultColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
void setCustomTabColorizer(TabLayout.TabColorizer customTabColorizer) {
|
void setCustomTabColorizer(TabLayout.TabColorizer customTabColorizer) {
|
||||||
@@ -88,10 +98,53 @@ class TabStrip extends LinearLayout {
|
|||||||
invalidate();
|
invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setTabTextColor(Integer color){
|
||||||
|
mTabTextColor = color;
|
||||||
|
updateTabsTextColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer getTabTextColor(){
|
||||||
|
return mTabTextColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void setSelectedTabTextColor(Integer color){
|
||||||
|
mSelectedTabTextColor = color;
|
||||||
|
updateTabsTextColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer getSelectedTabTextColor(){
|
||||||
|
return mSelectedTabTextColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateTabsTextColor(){
|
||||||
|
final int childCount = getChildCount();
|
||||||
|
for (int i = 0; i < childCount; i++){
|
||||||
|
LinearLayout linearLayout = (LinearLayout)getChildAt(i);
|
||||||
|
TextView textView = (TextView)linearLayout.getChildAt(1);
|
||||||
|
if (i == mSelectedPosition){
|
||||||
|
if (mSelectedTabTextColor != null){
|
||||||
|
textView.setTextColor(mSelectedTabTextColor);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
textView.setTextColor(mDefaultTabTextColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (mTabTextColor != null){
|
||||||
|
textView.setTextColor(mTabTextColor);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
textView.setTextColor(mDefaultTabTextColor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void onViewPagerPageChanged(int position, float positionOffset) {
|
void onViewPagerPageChanged(int position, float positionOffset) {
|
||||||
mSelectedPosition = position;
|
mSelectedPosition = position;
|
||||||
mSelectionOffset = positionOffset;
|
mSelectionOffset = positionOffset;
|
||||||
invalidate();
|
invalidate();
|
||||||
|
updateTabsTextColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user