将焦点设置在标签布局上

时间:2015-05-20 06:29:51

标签: java android eclipse tabs

我目前的问题需要帮助:

  1. 所以我创建了一个应用程序,其中主菜单包含某个按钮(5按钮),当您按下按钮时,子菜单活动将开始。
  2. 子菜单活动包含滑动标签布局,我按照互联网上的一些教程创建,并且根据位置索引扩展5种不同的布局。
  3. 标签布局工作正常。
  4. 我的问题: 我想要做的是,当我按下按钮1时,它将启动子菜单活动,并且位置索引1的tablayout将被聚焦,当我按下按钮2时,它将执行相同但是位置索引为2的tablayout将集中精力。但似乎我无法理解,所以我需要任何帮助,谢谢。

    首先,这是我的主菜单xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:clickable="true"
        android:orientation="vertical"
        tools:context="id.wanda.smkkkristenimmanuelii.MenuUtama" >
    
        <include
            android:id="@+id/app_action_bar"
            layout="@layout/action_bar" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
    
            <LinearLayout
                android:paddingTop="10dp"
                android:paddingBottom="5dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >
    
                <Button
                    android:id="@+id/btn0"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:background="@color/white"
                    android:text="Button 0"
                    android:onClick="btn0"
                    android:src="@drawable/btn_1" />
    
                <Button
                    android:id="@+id/btn1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:background="@color/white"
                    android:text="Button 1"
                    android:onClick="btn1"
                    android:src="@drawable/btn_1" />
                
                <Button
                    android:id="@+id/btn2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:background="@color/white"
                    android:text="Button 2"
                    android:onClick="btn2"
                    android:src="@drawable/btn_2" />
    
            </LinearLayout>
            
            <LinearLayout
                android:paddingTop="10dp"
                android:paddingBottom="5dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >
                
                <Button
                    android:id="@+id/btn3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:background="@color/white"
                    android:text="Button 3"
                    android:onClick="btn3"
                    android:src="@drawable/btn_3" />
                
                <Button
                    android:id="@+id/btn4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:background="@color/white"
                    android:text="Button 4"
                    android:onClick="btn4"
                    android:src="@drawable/btn_4" />
                     
            </LinearLayout>
            
         </LinearLayout>
    
    </LinearLayout>

    然后是我的SubMenu xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="id.wanda.smkkkristenimmanuelii.SubMenu" >
    
        <include
            android:id="@+id/app_action_bar"
            layout="@layout/action_bar" />
    
        <tabs.SlidingTabLayout
            android:id="@+id/MyTabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    
        <android.support.v4.view.ViewPager
            android:id="@+id/MyPager"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />
    
    </LinearLayout>

    和我的主菜单.java:

    package id.wanda.smkkkristenimmanuelii;
    
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ImageButton;
    import android.widget.TextView;
    
    
    @SuppressWarnings("deprecation")
    public class MenuUtama extends ActionBarActivity {
    
    	private Toolbar toolbar;
        String level;
        TextView text;
    
    	@Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_menu_utama);
            
            toolbar = (Toolbar) findViewById(R.id.app_action_bar);
    		setSupportActionBar(toolbar);
    		getSupportActionBar().setHomeButtonEnabled(true);
    		
    		
        }
    	
    	public void btn0(View v) {
    		startActivity(new Intent(this, SubMenu.class));
    	}
    	public void btn1(View v) {
    		startActivity(new Intent(this, SubMenu.class));
    	}
    	public void btn2(View v) {
    		startActivity(new Intent(this, SubMenu.class));
    	}
    	public void btn3(View v) {
    		startActivity(new Intent(this, SubMenu.class));
    	}
    	public void btn4(View v) {
    		startActivity(new Intent(this, SubMenu.class));
    	}
    	  
    	
    }

    接下来是我的submenu.java:

    package id.wanda.smkkkristenimmanuelii;
    
    import tabs.SlidingTabLayout;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.ActionBarActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    
    @SuppressWarnings("deprecation")
    public class SubMenu extends ActionBarActivity {
    
    	private Toolbar toolbar;
    	private ViewPager mPager;
    	private SlidingTabLayout mTabs;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_sub_menu);
    		
    		toolbar = (Toolbar) findViewById(R.id.app_action_bar);
    		setSupportActionBar(toolbar);
    		getSupportActionBar().setHomeButtonEnabled(true);
    
    		mPager = (ViewPager) findViewById(R.id.MyPager);
    		mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    
    		mTabs = (SlidingTabLayout) findViewById(R.id.MyTabs);
    		mTabs.setDistributeEvenly(true);
    		mTabs.setBackgroundColor(getResources().getColor(R.color.lightblue));
    		mTabs.setSelectedIndicatorColors(getResources().getColor(R.color.red));
    		mTabs.setViewPager(mPager);
    	}
    
    	class MyPagerAdapter extends FragmentPagerAdapter {
    
    		String[] tabsText;
    
    		public MyPagerAdapter(FragmentManager fm) {
    			super(fm);
    			tabsText = getResources().getStringArray(R.array.tabs);
    
    		}
    
    		@Override
    		public Fragment getItem(int position) {
    			MyFragment myFragment = MyFragment.getInstance(position);
    			return myFragment;
    		}
    
    		@Override
    		public CharSequence getPageTitle(int position) {
    			return tabsText[position];
    		}
    
    		@Override
    		public int getCount() {
    			return 5;
    		}
    
    	}
    
    	public static class MyFragment extends Fragment implements
    			OnItemClickListener {
    		public static int posisi;
    		
    		public static MyFragment getInstance(int position) {
    			MyFragment myFragment = new MyFragment();
    			Bundle args = new Bundle();
    			args.putInt("position", position);
    			myFragment.setArguments(args);
    			return myFragment;
    		}
    
    		@Override
    		public View onCreateView(LayoutInflater inflater,
    				@Nullable ViewGroup container,
    				@Nullable Bundle savedInstanceState) {
    
    			View layout = inflater.inflate(R.layout.fragment_layout, container,
    					false);
    			Bundle bundle = getArguments();
    			posisi = bundle.getInt("position");			
    			
    			switch (posisi) {
    			case 0:
    				layout = inflater.inflate(R.layout.fragment_0, container, false);
    				break;
    			case 1:
    				layout = inflater.inflate(R.layout.fragment_1, container, false);
    				break;
    			case 2:
    				layout = inflater.inflate(R.layout.fragment_2, container, false);
    				break;
    			case 3:
    				layout = inflater.inflate(R.layout.fragment_3, container, false);
    				break;
    			case 4:
    				layout = inflater.inflate(R.layout.fragment_4, container, false);
    				break;
    			default:
    				break;
    			}
    			return layout;
    
    		}
    
    		@Override
    		public void onItemClick(AdapterView<?> parent, View view, int position,
    				long id) {
    			// TODO Auto-generated method stub
    			
    		}
    
    	}
    
    }

    我正在使用教程中的SlidingTabStrip.java和SlidingTabLayout.java:

    SlidingTabStrip.java:

    package tabs;
    
    import android.R;
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.util.AttributeSet;
    import android.util.TypedValue;
    import android.view.View;
    import android.widget.LinearLayout;
    
    class SlidingTabStrip extends LinearLayout {
    	private static final int DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS = 0;
    	private static final byte DEFAULT_BOTTOM_BORDER_COLOR_ALPHA = 0x26;
    	private static final int SELECTED_INDICATOR_THICKNESS_DIPS = 3;
    	private static final int DEFAULT_SELECTED_INDICATOR_COLOR = 0xFF33B5E5;
    	private final int mBottomBorderThickness;
    	private final Paint mBottomBorderPaint;
    	private final int mSelectedIndicatorThickness;
    	private final Paint mSelectedIndicatorPaint;
    	private final int mDefaultBottomBorderColor;
    	private int mSelectedPosition;
    	private float mSelectionOffset;
    	private SlidingTabLayout.TabColorizer mCustomTabColorizer;
    	private final SimpleTabColorizer mDefaultTabColorizer;
    
    	SlidingTabStrip(Context context) {
    		this(context, null);
    	}
    
    	SlidingTabStrip(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		setWillNotDraw(false);
    		final float density = getResources().getDisplayMetrics().density;
    		TypedValue outValue = new TypedValue();
    		context.getTheme().resolveAttribute(R.attr.colorForeground, outValue,
    				true);
    		final int themeForegroundColor = outValue.data;
    		mDefaultBottomBorderColor = setColorAlpha(themeForegroundColor,
    				DEFAULT_BOTTOM_BORDER_COLOR_ALPHA);
    		mDefaultTabColorizer = new SimpleTabColorizer();
    		mDefaultTabColorizer
    				.setIndicatorColors(DEFAULT_SELECTED_INDICATOR_COLOR);
    		mBottomBorderThickness = (int) (DEFAULT_BOTTOM_BORDER_THICKNESS_DIPS * density);
    		mBottomBorderPaint = new Paint();
    		mBottomBorderPaint.setColor(mDefaultBottomBorderColor);
    		mSelectedIndicatorThickness = (int) (SELECTED_INDICATOR_THICKNESS_DIPS * density);
    		mSelectedIndicatorPaint = new Paint();
    	}
    
    	void setCustomTabColorizer(SlidingTabLayout.TabColorizer customTabColorizer) {
    		mCustomTabColorizer = customTabColorizer;
    		invalidate();
    	}
    
    	void setSelectedIndicatorColors(int... colors) {
    		// Make sure that the custom colorizer is removed
    		mCustomTabColorizer = null;
    		mDefaultTabColorizer.setIndicatorColors(colors);
    		invalidate();
    	}
    
    	void onViewPagerPageChanged(int position, float positionOffset) {
    		mSelectedPosition = position;
    		mSelectionOffset = positionOffset;
    		invalidate();
    	}
    
    	@Override
    	protected void onDraw(Canvas canvas) {
    		final int height = getHeight();
    		final int childCount = getChildCount();
    		final SlidingTabLayout.TabColorizer tabColorizer = mCustomTabColorizer != null ? mCustomTabColorizer
    				: mDefaultTabColorizer;
    		// Thick colored underline below the current selection
    		if (childCount > 0) {
    			View selectedTitle = getChildAt(mSelectedPosition);
    			int left = selectedTitle.getLeft();
    			int right = selectedTitle.getRight();
    			int color = tabColorizer.getIndicatorColor(mSelectedPosition);
    			if (mSelectionOffset > 0f
    					&& mSelectedPosition < (getChildCount() - 1)) {
    				int nextColor = tabColorizer
    						.getIndicatorColor(mSelectedPosition + 1);
    				if (color != nextColor) {
    					color = blendColors(nextColor, color, mSelectionOffset);
    				}
    				// Draw the selection partway between the tabs
    				View nextTitle = getChildAt(mSelectedPosition + 1);
    				left = (int) (mSelectionOffset * nextTitle.getLeft() + (1.0f - mSelectionOffset)
    						* left);
    				right = (int) (mSelectionOffset * nextTitle.getRight() + (1.0f - mSelectionOffset)
    						* right);
    			}
    			mSelectedIndicatorPaint.setColor(color);
    			canvas.drawRect(left, height - mSelectedIndicatorThickness, right,
    					height, mSelectedIndicatorPaint);
    		}
    		// Thin underline along the entire bottom edge
    		canvas.drawRect(0, height - mBottomBorderThickness, getWidth(), height,
    				mBottomBorderPaint);
    	}
    
    	/**
    	 * Set the alpha value of the {@code color} to be the given {@code alpha}
    	 * value.
    	 */
    	private static int setColorAlpha(int color, byte alpha) {
    		return Color.argb(alpha, Color.red(color), Color.green(color),
    				Color.blue(color));
    	}
    
    	/**
    	 * Blend {@code color1} and {@code color2} using the given ratio.
    	 * 
    	 * @param ratio
    	 *            of which to blend. 1.0 will return {@code color1}, 0.5 will
    	 *            give an even blend, 0.0 will return {@code color2}.
    	 */
    	private static int blendColors(int color1, int color2, float ratio) {
    		final float inverseRation = 1f - ratio;
    		float r = (Color.red(color1) * ratio)
    				+ (Color.red(color2) * inverseRation);
    		float g = (Color.green(color1) * ratio)
    				+ (Color.green(color2) * inverseRation);
    		float b = (Color.blue(color1) * ratio)
    				+ (Color.blue(color2) * inverseRation);
    		return Color.rgb((int) r, (int) g, (int) b);
    	}
    
    	private static class SimpleTabColorizer implements
    			SlidingTabLayout.TabColorizer {
    		private int[] mIndicatorColors;
    
    		@Override
    		public final int getIndicatorColor(int position) {
    			return mIndicatorColors[position % mIndicatorColors.length];
    		}
    
    		void setIndicatorColors(int... colors) {
    			mIndicatorColors = colors;
    		}
    	}
    }

    SlidingTabLayout.java:

    package tabs;
    
    import android.content.Context;
    import android.graphics.Typeface;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.util.AttributeSet;
    import android.util.SparseArray;
    import android.util.TypedValue;
    import android.view.Gravity;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.HorizontalScrollView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    
    public class SlidingTabLayout extends HorizontalScrollView {
    	/**
    	 * Allows complete control over the colors drawn in the tab layout. Set with
    	 * {@link #setCustomTabColorizer(TabColorizer)}.
    	 */
    	public interface TabColorizer {
    		/**
    		 * @return return the color of the indicator used when {@code position}
    		 *         is selected.
    		 */
    		int getIndicatorColor(int position);
    	}
    
    	private static final int TITLE_OFFSET_DIPS = 24;
    	private static final int TAB_VIEW_PADDING_DIPS = 16;
    	private static final int TAB_VIEW_TEXT_SIZE_SP = 12;
    	private int mTitleOffset;
    	private int mTabViewLayoutId;
    	private int mTabViewTextViewId;
    	private boolean mDistributeEvenly;
    	private ViewPager mViewPager;
    	private SparseArray<String> mContentDescriptions = new SparseArray<String>();
    	private ViewPager.OnPageChangeListener mViewPagerPageChangeListener;
    	private final SlidingTabStrip mTabStrip;
    
    	public SlidingTabLayout(Context context) {
    		this(context, null);
    	}
    
    	public SlidingTabLayout(Context context, AttributeSet attrs) {
    		this(context, attrs, 0);
    	}
    
    	public SlidingTabLayout(Context context, AttributeSet attrs, int defStyle) {
    		super(context, attrs, defStyle);
    		// Disable the Scroll Bar
    		setHorizontalScrollBarEnabled(false);
    		// Make sure that the Tab Strips fills this View
    		setFillViewport(true);
    		mTitleOffset = (int) (TITLE_OFFSET_DIPS * getResources()
    				.getDisplayMetrics().density);
    		mTabStrip = new SlidingTabStrip(context);
    		addView(mTabStrip, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    	}
    
    	/**
    	 * Set the custom {@link TabColorizer} to be used.
    	 * 
    	 * If you only require simple custmisation then you can use
    	 * {@link #setSelectedIndicatorColors(int...)} to achieve similar effects.
    	 */
    	public void setCustomTabColorizer(TabColorizer tabColorizer) {
    		mTabStrip.setCustomTabColorizer(tabColorizer);
    	}
    
    	public void setDistributeEvenly(boolean distributeEvenly) {
    		mDistributeEvenly = distributeEvenly;
    	}
    
    	/**
    	 * Sets the colors to be used for indicating the selected tab. These colors
    	 * are treated as a circular array. Providing one color will mean that all
    	 * tabs are indicated with the same color.
    	 */
    	public void setSelectedIndicatorColors(int... colors) {
    		mTabStrip.setSelectedIndicatorColors(colors);
    	}
    
    	/**
    	 * Set the {@link ViewPager.OnPageChangeListener}. When using
    	 * {@link SlidingTabLayout} you are required to set any
    	 * {@link ViewPager.OnPageChangeListener} through this method. This is so
    	 * that the layout can update it's scroll position correctly.
    	 * 
    	 * @see ViewPager#setOnPageChangeListener(ViewPager.OnPageChangeListener)
    	 */
    	public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) {
    		mViewPagerPageChangeListener = listener;
    	}
    
    	/**
    	 * Set the custom layout to be inflated for the tab views.
    	 * 
    	 * @param layoutResId
    	 *            Layout id to be inflated
    	 * @param textViewId
    	 *            id of the {@link TextView} in the inflated view
    	 */
    	public void setCustomTabView(int layoutResId, int textViewId) {
    		mTabViewLayoutId = layoutResId;
    		mTabViewTextViewId = textViewId;
    	}
    
    	/**
    	 * Sets the associated view pager. Note that the assumption here is that the
    	 * pager content (number of tabs and tab titles) does not change after this
    	 * call has been made.
    	 */
    	public void setViewPager(ViewPager viewPager) {
    		mTabStrip.removeAllViews();
    		mViewPager = viewPager;
    		if (viewPager != null) {
    			viewPager.setOnPageChangeListener(new InternalViewPagerListener());
    			populateTabStrip();
    		}
    	}
    
    	/**
    	 * Create a default view to be used for tabs. This is called if a custom tab
    	 * view is not set via {@link #setCustomTabView(int, int)}.
    	 */
    	protected TextView createDefaultTabView(Context context) {
    		TextView textView = new TextView(context);
    		textView.setGravity(Gravity.CENTER);
    		textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP);
    		textView.setTypeface(Typeface.DEFAULT_BOLD);
    		textView.setLayoutParams(new LinearLayout.LayoutParams(
    				ViewGroup.LayoutParams.WRAP_CONTENT,
    				ViewGroup.LayoutParams.WRAP_CONTENT));
    		TypedValue outValue = new TypedValue();
    		getContext().getTheme().resolveAttribute(
    				android.R.attr.selectableItemBackground, outValue, true);
    		textView.setBackgroundResource(outValue.resourceId);
    		textView.setAllCaps(true);
    		int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources()
    				.getDisplayMetrics().density);
    		textView.setPadding(padding, padding, padding, padding);
    		return textView;
    	}
    
    	private void populateTabStrip() {
    		final PagerAdapter adapter = mViewPager.getAdapter();
    		final View.OnClickListener tabClickListener = new TabClickListener();
    		for (int i = 0; i < adapter.getCount(); i++) {
    			View tabView = null;
    			TextView tabTitleView = null;
    			if (mTabViewLayoutId != 0) {
    				// If there is a custom tab view layout id set, try and inflate
    				// it
    				tabView = LayoutInflater.from(getContext()).inflate(
    						mTabViewLayoutId, mTabStrip, false);
    				tabTitleView = (TextView) tabView
    						.findViewById(mTabViewTextViewId);
    			}
    			if (tabView == null) {
    				tabView = createDefaultTabView(getContext());
    			}
    			if (tabTitleView == null && TextView.class.isInstance(tabView)) {
    				tabTitleView = (TextView) tabView;
    			}
    			if (mDistributeEvenly) {
    				LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView
    						.getLayoutParams();
    				lp.width = 0;
    				lp.weight = 1;
    			}
    			tabTitleView.setText(adapter.getPageTitle(i));
    			tabView.setOnClickListener(tabClickListener);
    			String desc = mContentDescriptions.get(i, null);
    			if (desc != null) {
    				tabView.setContentDescription(desc);
    			}
    			mTabStrip.addView(tabView);
    			if (i == mViewPager.getCurrentItem()) {
    				tabView.setSelected(true);
    			}
    		}
    	}
    
    	public void setContentDescription(int i, String desc) {
    		mContentDescriptions.put(i, desc);
    	}
    
    	@Override
    	protected void onAttachedToWindow() {
    		super.onAttachedToWindow();
    		if (mViewPager != null) {
    			scrollToTab(mViewPager.getCurrentItem(), 0);
    		}
    	}
    
    	private void scrollToTab(int tabIndex, int positionOffset) {
    		final int tabStripChildCount = mTabStrip.getChildCount();
    		if (tabStripChildCount == 0 || tabIndex < 0
    				|| tabIndex >= tabStripChildCount) {
    			return;
    		}
    		View selectedChild = mTabStrip.getChildAt(tabIndex);
    		if (selectedChild != null) {
    			int targetScrollX = selectedChild.getLeft() + positionOffset;
    			if (tabIndex > 0 || positionOffset > 0) {
    				// If we're not at the first child and are mid-scroll, make sure
    				// we obey the offset
    				targetScrollX -= mTitleOffset;
    			}
    			scrollTo(targetScrollX, 0);
    		}
    	}
    
    	private class InternalViewPagerListener implements
    			ViewPager.OnPageChangeListener {
    		private int mScrollState;
    
    		@Override
    		public void onPageScrolled(int position, float positionOffset,
    				int positionOffsetPixels) {
    			int tabStripChildCount = mTabStrip.getChildCount();
    			if ((tabStripChildCount == 0) || (position < 0)
    					|| (position >= tabStripChildCount)) {
    				return;
    			}
    			mTabStrip.onViewPagerPageChanged(position, positionOffset);
    			View selectedTitle = mTabStrip.getChildAt(position);
    			int extraOffset = (selectedTitle != null) ? (int) (positionOffset * selectedTitle
    					.getWidth()) : 0;
    			scrollToTab(position, extraOffset);
    			if (mViewPagerPageChangeListener != null) {
    				mViewPagerPageChangeListener.onPageScrolled(position,
    						positionOffset, positionOffsetPixels);
    			}
    		}
    
    		@Override
    		public void onPageScrollStateChanged(int state) {
    			mScrollState = state;
    			if (mViewPagerPageChangeListener != null) {
    				mViewPagerPageChangeListener.onPageScrollStateChanged(state);
    			}
    		}
    
    		@Override
    		public void onPageSelected(int position) {
    			if (mScrollState == ViewPager.SCROLL_STATE_IDLE) {
    				mTabStrip.onViewPagerPageChanged(position, 0f);
    				scrollToTab(position, 0);
    			}
    			for (int i = 0; i < mTabStrip.getChildCount(); i++) {
    				mTabStrip.getChildAt(i).setSelected(position == i);
    			}
    			if (mViewPagerPageChangeListener != null) {
    				mViewPagerPageChangeListener.onPageSelected(position);
    			}
    		}
    	}
    
    	private class TabClickListener implements View.OnClickListener {
    		@Override
    		public void onClick(View v) {
    			for (int i = 0; i < mTabStrip.getChildCount(); i++) {
    				if (v == mTabStrip.getChildAt(i)) {
    					mViewPager.setCurrentItem(i);
    					return;
    				}
    			}
    		}
    	}
    }

0 个答案:

没有答案