兰州最好的网站开发公司/广州网站排名优化公司
ViewPage是android-support-v4.jar包提供的用于页面滑动的库.这里没有将整个实现过程记录,只是把知识点摘出来单独解释.可参照代码自己实现.
1.在xml布局文件中添加android.support.v4.view.ViewPager容器及显示导航所用标签android.support.v4.view.PagerTitleStrip,
如我添加的xml内容如下
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/pager"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><!--This title strip will display the currently visible page title, as well as the pagetitles for adjacent pages.--><android.support.v4.view.PagerTitleStripandroid:id="@+id/pager_title_strip"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="top"android:background="#33b5e5"android:paddingBottom="4dp"android:paddingTop="4dp"android:textColor="#fff" /></android.support.v4.view.ViewPager>
2.在activity中导入以下包
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
3.声明变量
SectionsPagerAdapter mSectionsPagerAdapter;//此处的SectionsPagerAdapter是继承了FragmentPagerAdapter的类
ViewPager mViewPager;
4.在onCreate中对其进行初始化
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
5.添加类SectionsPagerAdapter,我这里使用了3个标签
public class SectionsPagerAdapter extends FragmentPagerAdapter {public SectionsPagerAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int position) {// getItem is called to instantiate the fragment for the given page.// Return a DummySectionFragment (defined as a static inner class// below) with the page number as its lone argument.Fragment fragment = new Fragment();Bundle args = new Bundle();args.putInt("no", position + 1);fragment.setArguments(args);return fragment;}@Overridepublic int getCount() {// Show 3 total pages.return 3;}@Overridepublic CharSequence getPageTitle(int position) {switch (position) {case 0:return "标签1";case 1:return "标签2";case 2:return "标签3";}return null;}}
可以看到在getItem中返回了一个Fragment,这个就是当滑动到不同标签时显示在ViewPager中的内容,Fragment相当于一个Activity,可以在其中的onCreateView函数中构造需要显示的内容并返回
比如,以下代码将显示一个文本信息
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {TextView textView = new TextView(getActivity());textView.setGravity(Gravity.CENTER);textView.setText("你选择了标签:"+Integer.toString(getArguments().getInt("no")));return textView;}
关于fragment的具体内容,在另一篇转载的文章里更加具体点击打开链接