测试用的主Activity MainActivity.java文件:
public class MainActivity extends FragmentActivity {
private ArrayList<Fragment> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fm = this.getSupportFragmentManager();
list = new ArrayList<Fragment>();
list.add(new WeiXinFragment());
list.add(new TongXunLuFragment());
list.add(new FaXianFragment());
list.add(new MeFragment());
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyFragmentPager(fm));
SlidingTabLayout sliding = (SlidingTabLayout) findViewById(R.id.sliding);
sliding.setViewPager(pager);
}
private class MyFragmentPager extends FragmentPagerAdapter {
public MyFragmentPager(android.support.v4.app.FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public android.support.v4.app.Fragment getItem(int arg0) {
return list.get(arg0);
}
@Override
public CharSequence getPageTitle(int position) {
String str = null;
switch (position) {
case 0:
str = "微信";
break;
case 1:
str = "通讯录";
break;
case 2:
str = "发现";
break;
case 3:
str = "我";
break;
default:
break;
}
return str;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
}
}
MainActivity.java需要的布局文件 activity_main.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="com.example.fragment.MainActivity">
<com.example.fragment.SlidingTabLayout
android:id="@+id/sliding"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</com.example.fragment.SlidingTabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
</LinearLayout>
以下是谷歌官方Android实现的SlidingTabLayout.java全部源代码:
package zhangphil.android.common.view;
import android.content.Context;
import android.graphics.Typeface;
import android.os.Build;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.HorizontalScrollView;
import android.widget.TextView;
/**
* To be used with ViewPager to provide a tab indicator component which give constant feedback as to
* the user's scroll progress.
* <p>
* To use the component, simply add it to your view hierarchy. Then in your
* {@link android.app.Ac