我的目标是创建具有滑动手势以在产品之间切换的应用程序。首先,我创建带有导航抽屉的应用程序。此抽屉项目/菜单将加载不同的片段。
在这个名为 Coupon 的特定片段中,我想实现 ViewPager。 这是我在尝试中取得的成就:
-
创建优惠券片段,当我单击导航抽屉中的项目之一时加载
-
在优惠券碎片上.java我把:
mCustomPagerAdapter = new CustomPagerAdapter(getFragmentManager(), getActivity()); mViewPager = (ViewPager) view.findViewById(R.id.pager); mViewPager.setAdapter(mCustomPagerAdapter);
-
在我放视图页的fragment_coupon.xml
-
我创建了扩展 FragmentPagerAdapter 的 CustomPagerAdapter:
public class CustomPagerAdapter extensions FragmentPagerAdapter {
protected Context mContext; public CustomPagerAdapter(FragmentManager fm, Context context) { super(fm); mContext = context; } @Override // This method returns the fragment associated with // the specified position. // // It is called when the Adapter needs a fragment // and it does not exists. public Fragment getItem(int position) { // Create fragment object Fragment fragment = new DemoFragment(); // Attach some data to it that we'll // use to populate our fragment layouts Bundle args = new Bundle(); args.putInt("page_position", position + 1); args.putString("coupon_name", "Promo Lorem Ipsum"); args.putString("coupon_desc", "description is here"); // Set the arguments on the fragment // that will be fetched in DemoFragment@onCreateView fragment.setArguments(args); return fragment; } @Override public int getCount() { return 3; }
}
-
我创建了DemoFragment.java它加载在适配器中:
公共类 DemoFragment 扩展了 Fragment {
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout resource that'll be returned View rootView = inflater.inflate(R.layout.fragment_demo, container, false); // Get the arguments that was supplied when // the fragment was instantiated in the // CustomPagerAdapter Bundle args = getArguments(); ((TextView) rootView.findViewById(R.id.text)).setText("Page " + args.getInt("page_position")); ((TextView) rootView.findViewById(R.id.test1)).setText("" + args.getString("coupon_name")); ((TextView) rootView.findViewById(R.id.test2)).setText("" + args.getString("coupon_desc")); return rootView; }
}
-
我创建fragment_demo.xml:
<TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Page 0" android:id="@+id/text" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/test1"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/test2"/>
我的问题:
- 我想在那里加载一堆产品,假设有 20 个产品要滑动。 我该怎么做? 我只得到了位置,但没有加载数据的产品 ID
一次从数据库中获取所有 20 个产品,并在 CustomPagerAdapter(List list,...)中传递一个列表;并在 getCount() 中返回 list.size