ViewPage是android-support-v4.jar包提供的用于页面滑动的库,android-support-v4.jar是google推荐使用的一个类库,在项目中使用之前,你必须其添加到项目中(项目点右键Build path->configure build path,然后找到jar进行添加)
1.在xml布局文件中添加android.support.v4.view.ViewPager容器及显示导航所用标签android.support.v4.view.PagerTitleStrip,如我添加的xml内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<
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 page
titles for adjacent pages.
-->
<
android.support.v4.view.PagerTitleStrip
android: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中导入以下包
1
2
3
4
|
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.声明变量
1
2
|
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
|
4.在onCreate中对其进行初始化
1
2
3
4
5
6
|
mSectionsPagerAdapter =
new
SectionsPagerAdapter(
getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
|
5.添加类SectionsPagerAdapter,我这里使用了3个标签
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
public
class
SectionsPagerAdapter
extends
FragmentPagerAdapter {
public
SectionsPagerAdapter(FragmentManager fm) {
super
(fm);
}
@Override
public
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
HjFragment();
Bundle args =
new
Bundle();
args.putInt(
"no"
, position +
1
);
fragment.setArguments(args);
return
fragment;
}
@Override
public
int
getCount() {
// Show 3 total pages.
return
3
;
}
@Override
public
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函数中构造需要显示的内容并返回
比如,以下代码将显示一个文本信息
1
2
3
4
5
6
7
8
9
10
|
@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;
}
|