As a paging indicator widget, ViewPagerIndicator is compatible with ViewPager. It has done a very good job in packaging and has been used by many well-known applications.
ViewPagerIndicator+viewpager achieves the following effects: (Note: It can be achieved without importing or introducing any package)
Six classes can achieve the above effect
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="fill_parent"> <com.viewpagerindicator.TabPageIndicator android:id="@+id/indicator" android:layout_height="wrap_content" android:layout_width="match_parent" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout>
MainActivity.java
public class MainActivity extends FragmentActivity { private static final String[] CONTENT = new String[] { "recommended", "hot spot", "video", "local", "tech", "health" }; private List<Fragment> list=new ArrayList<Fragment>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate (savedInstanceState); setContentView(R.layout.activity_main); FragmentPagerAdapter adapter = new GoogleMusicAdapter(getSupportFragmentManager()); ViewPager pager = (ViewPager)findViewById(R.id.pager); pager.setAdapter(adapter); TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator); indicator.setViewPager(pager); } class GoogleMusicAdapter extends FragmentPagerAdapter { public GoogleMusicAdapter(FragmentManager fm) { super (fm); list.add(new TestFragment(CONTENT[0])); list.add(new TestFragment(CONTENT[1])); list.add(new TestFragment(CONTENT[2])); list.add(new TestFragment(CONTENT[3])); list.add(new TestFragment(CONTENT[4])); list.add(new TestFragment(CONTENT[5])); } @Override public Fragment getItem(int position) { return list.get(position); } @Override public CharSequence getPageTitle(int position) { return CONTENT[position % CONTENT.length].toUpperCase(); } @Override public int getCount() { return CONTENT.length; } } }
Fragment.Java
public final class TestFragment extends Fragment { private String s; public TestFragment(String s) { this.s=s; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_news, container, false); } @Override public void onActivityCreated( Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); View view=getView(); TextView te=(TextView)view.findViewById(R.id.textView1); te.setText(s); } public void initView() { } }
Tool code code is too much to give, just download it directly.
CSDN download: http://download.csdn.net/detail/dickyqie/9705872