Tôi đang cố gắng để thực hiện ViewPager sử dụng MultiViewPager và sử dụng zoomoutpageTransformer google như hiệu lực, mục đích là đạt được một cái gì đó giống như hình ảnh này:MultiViewPager + ZoomOutPageTransformer không hoạt động đúng
nhưng tôi không thể hiển thị các hai trang ở bên phải và bên trái, mỗi khi tôi nhận được một trang ở giữa màn hình! đây là chế độ code pager của tôi:
mViewPager.setPageMargin(
-64);
mAdapter = new ViewPagerAdapter(getActivity(), mClasses);
mViewPager.setPageTransformer(true, new ZoomOutPageTransformer());
mViewPager.setAdapter(mAdapter);
đây là ViewPager tôi trong xml:
<ir.phzrobin.Utils.MultiViewPager
android:id="@+id/viewPager"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_margin="20dp"
app:matchChildWidth="@+id/textview_class_title" >
</ir.phzrobin.Utils.MultiViewPager>
và đây là cách bố trí trang ViewPager tôi:
<TextView
android:id="@+id/textview_class_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_gravity="top"
android:layout_margin="5dp"
android:gravity="center_horizontal"
android:padding="10dp"
android:text="fsafjabf"
android:textAlignment="gravity"
android:textColor="@color/white"
android:textSize="17sp" />
<TextView
android:id="@+id/textview_class_teacher"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textview_class_title"
android:layout_centerVertical="true"
android:layout_margin="5dp"
android:gravity="center_horizontal"
android:padding="10dp"
android:text="fsafjabf"
android:textAlignment="gravity"
android:textColor="@color/white"
android:textSize="17sp" />
<ImageView
android:id="@+id/button_options"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_margin="20dp"
android:layout_marginRight="2dp"
android:background="@drawable/overflow" />
</RelativeLayout>
những gì tôi đã cố gắng là this và cũng là câu trả lời của nhà phát triển multiviewpager từ here ai cũng có thể giúp tôi đạt được mục tiêu? nhờ
đây là quan điểm pager adapter:
public class ViewPagerAdapter extends PagerAdapter {
// ImageLoader imageLoader = ImageLoader.getInstance();
// DisplayImageOptions options;
// private ImageLoadingListener imageListener;
Context activity;
List<Classes> items;
public ViewPagerAdapter(Context activity, List<Classes> items) {
this.activity = activity;
this.items = items;
}
public void setItems(List<Classes> items) {
this.items = items;
notifyDataSetChanged();
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return items.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
final int pos = position;
// TODO Auto-generated method stub
LayoutInflater inflater = (LayoutInflater) activity
.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.row_viewpager, container, false);
TextView mClassTitle = (TextView) view
.findViewById(R.id.textview_class_title);
mClassTitle.setText("عنوان درس: " + items.get(pos).getSubject());
mClassTitle.setTypeface(AppFont.GetAppFont());
((TextView) view.findViewById(R.id.textview_class_teacher))
.setText("نام استاد: " + items.get(pos).getMasterName());
((TextView) view.findViewById(R.id.textview_class_teacher))
.setTypeface(AppFont.GetAppFont());
RelativeLayout mLayout = (RelativeLayout) view
.findViewById(R.id.rl_viewpager);
mLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent _intent = new Intent(ContextVal.GetAppContext(),
ClassNotes.class);
_intent.putExtra("CLASSID",
String.valueOf(items.get(pos).getID())); // set selected
// item id
// into
// intent
// activity
// to use in
// Classnotes
// Activity!
activity.startActivity(_intent); // open notes activity
}
});
ImageView mOverFlow = (ImageView) view.findViewById(R.id.button_options);
mOverFlow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
PopupMenu popup = new PopupMenu(ContextVal.GetAppContext(), v);
popup.getMenuInflater().inflate(R.menu.poupup_menu, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(item.getIcon() != null)
{//edit item
Intent _ClassWindow = new Intent(ContextVal.GetAppContext(),
AddNewClass.class);
_ClassWindow.putExtra("CLASSID", String.valueOf(items.get(pos).getID()));
activity.startActivity(_ClassWindow); }
else{//delete item
AlertDialog.Builder builder = new AlertDialog.Builder(
ContextVal.GetAppContext());
builder.setTitle("حذف کلاس");
builder.setMessage("آیا مطمعن هستید که میخواهید این درس را حذف کنید ؟");
builder.setPositiveButton("بله", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Do nothing but close the dialog
Log.e("onClick", "YES");
DatabaseHandler _db = new DatabaseHandler(ContextVal
.GetAppContext());
_db.deleteClass(items.get(pos));
_db.deleteClassNotes(items.get(pos).getID());
ContextVal.mViewFragment.RefreshViewPager(); // Refresh Items !
// and remove
// deleted item from
// user's eyes lol
dialog.dismiss();
}
});
builder.setNegativeButton("خیر", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Do nothing
Log.e("onClick", "NO");
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show(); }
return true;
}
});
popup.show();
}
});
container.addView(view, 0);
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
container.removeView((View) object);
}
}
Hãy gửi mã của bạn cho ViewPagerAdapter –
@krislarson thêm vào câu hỏi –