Viewpager là gì?
- Viewpager là một đối tượng giống như slide show trong PowerPoin của Microsoft.
- Viewpager giúp chúng ta chuyển qua trang tiếp theo hoặc trang trước đó mượt mà thay vì chỉ chớp đen một cái rồi chuyển trang.
Các bạn có thể tham khảo thêm tại đây
Hướng dẫn sử dụng
- Viewpager hỗ trợ device API 13 trở lên.
- Viewpager không phải là một View chuẩn trong android studio, muốn sử dụng được thì phải thêm gói android.support:design:25.2.0 (tùy phiên bản).
Chúng ta có thể thêm vào bằng cách bấm tổ hợp phím Ctrl + Alt + Shift + S, trong mục Modules chọn App, chọn thẻ dependencies, rồi bấm vào dấu + góc trên bên phải, chọn library. Hiện ra hộp thoại, ta search với từ khóa "design", chọn gói android.support:design:25.2.0 (tùy phiên bản) rồi bấm OK.
Ví dụ đơn giản về Viewpager
Trong ví dụ này mình sẽ tạo một project với 5 fragment swipe qua lại bằng cách sử dụng viewpager.
Create The Views
View này dùng để gắng vào fragment, nó gồm một đoạn text đơn giản. Tạo như sau:
<!-- fragment_screen_slide_page.xml -->
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="this is simple text">
</TextView>
Create The Fragment
Class Fragment sẽ trả về cái view mà mình vừa tạo ở trên trong hàm onCreateView.
import android.support.v4.app.Fragment;
...
public class ScreenSlidePageFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup rootView = (ViewGroup) inflater.inflate(
R.layout.fragment_screen_slide_page, container, false);
return rootView;
}
}
Add Viewpager
Trong activity_main.xml add viewpager vào:
<!-- activity_main.xml -->
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Tiếp theo, trong class MainActivity:
- Ánh xạ Viewpager.
- tạo adapterViewpager extends FragmentStatePagerAdapter và implement hàm getItem() và getCount() (android studio sẽ tự gợi ý bạn add các hàm cần thiết vào). hàm getItem() sẽ trả về cái fragment chứa đoạn text, hàm getCount() trả về số lượng trang.
- setAdapter cho Viewpager.
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
...
public class MainActivity extends FragmentActivity {
/**
* The number of pages (wizard steps) to show in this demo.
*/
private static final int NUM_PAGES = 5;
/**
* The pager widget, which handles animation and allows swiping horizontally to access previous
* and next wizard steps.
*/
private ViewPager mPager;
/**
* The pager adapter, which provides the pages to the view pager widget.
*/
private PagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Instantiate a ViewPager and a PagerAdapter.
mPager = (ViewPager) findViewById(R.id.pager);
mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager());
mPager.setAdapter(mPagerAdapter);
}
/**
* A simple pager adapter that represents 5 ScreenSlidePageFragment objects, in
* sequence.
*/
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return new ScreenSlidePageFragment();
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
}
Chúc các bạn thành công!
HungNguyen