package com.metis.base.widget; import android.content.Context; import android.support.annotation.StringRes; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import com.metis.base.R; /** * Created by Beak on 2015/8/4. */ public class DoubleTab extends LinearLayout { public static final int INDEX_FIRST = 0, INDEX_SECOND = 1; private TextView mFirstTab, mSecondTab; private OnTabSwitchListener mTabListener = null; private View mCurrentView = null; public DoubleTab(Context context) { this(context, null); } public DoubleTab(Context context, AttributeSet attrs) { this(context, attrs, 0); } public DoubleTab(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initThis(context); } private void initThis (Context context) { LayoutInflater.from(context).inflate(R.layout.layout_double_tab, this); mFirstTab = (TextView)findViewById(R.id.tab_first); mSecondTab = (TextView)findViewById(R.id.tab_second); mFirstTab.setOnClickListener(mTabClickListener); mSecondTab.setOnClickListener(mTabClickListener); } public void setFirstTabText (CharSequence cs) { mFirstTab.setText(cs); } public void setFirstTabText (@StringRes int stringId) { mFirstTab.setText(stringId); } public void setSecondTabText (CharSequence cs) { mSecondTab.setText(cs); } public void setSecondTabText (@StringRes int stringId) { mSecondTab.setText(stringId); } public void select (int index) { if (index == INDEX_FIRST) { mFirstTab.performClick(); } else if (index == INDEX_SECOND) { mSecondTab.performClick(); } } private OnClickListener mTabClickListener = new OnClickListener() { @Override public void onClick(View v) { if (v == mCurrentView) { return; } if (mCurrentView != null) { mCurrentView.setSelected(false); } v.setSelected(true); mCurrentView = v; if (mTabListener != null) { mTabListener.onSwitch(v.getId() == mFirstTab.getId() ? INDEX_FIRST : INDEX_SECOND); } } }; public void setOnTabSwitchListener (OnTabSwitchListener listener) { mTabListener = listener; } public static interface OnTabSwitchListener { public void onSwitch (int index); } }