@(Blog)[马克飞象|Markdown|Android]
为了方便的实现不同界面之间的滑动效果,主要是实现Fragment的滑动。
<RelativeLayout 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"
tools:context="com.example.focus.androidnote.viewpager.ViewPagerActivity">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
public class TextFragment extends Fragment {
private static final String TAG = "TextFragment";
String mText;
TextView mTextTv;
public static TextFragment newInstance(String text) {
TextFragment fragment = new TextFragment();
fragment.mText = text;
return fragment;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_text, container, false);
root.setBackgroundColor(Color.BLUE);
mTextTv = (TextView) root.findViewById(R.id.text_tv);
mTextTv.setText(mText);
Log.d(TAG, "onCreateView");
return root;
}
}
提示
Google不建议Fragment
使用有参的构造函数,所以使用newInstance()
来传参数
ListView
一样,ViewPager
也需要使用Adapter
,我们需要继承PageAdapter
,不过直接继承这个的应该不多,一般我们都是使用Fragment
,还可以继承FragmentPagerAdapter
、FragmentStatePagerAdapter
,我使用的是Fragment
,所以直接就继承FragmentPagerAdapterclass MyPagerAdapter extends FragmentPagerAdapter {
public MyPagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
return mFragmentList.get(position);
}
}
protected ViewPager mPager;
protected ArrayList<Fragment> mFragmentList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager);
mFragmentList = new ArrayList<>();
mPager = (ViewPager) findViewById(R.id.pager);
for (int i = 0; i < 3; i++) {
Fragment fragment = TextFragment.newInstance("fragment" + i);
mFragmentList.add(fragment);
}
PagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager());
mPager.setAdapter(adapter);
}
只是看别人博客的时候,觉得这个好麻烦,然后自己敲了一遍后,发现也就那么回事,真的很简单。
我只是介绍了一些基础的用法,更具体的用法可以看下面的博客
参考
Android ViewPager使用详解
【移动开发】Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)
Android中ViewPager使用FragmentPagerAdapter(底部圆点)
个人觉得第一个blog写的是最好的,后面两个感觉有点乱。