【发布时间】:2016-12-02 07:06:40
【问题描述】:
我在活动中使用视图寻呼机,顺序是 - 当我单击第一页中的下一个按钮时,它应该转到第二页。如果我单击第二页中的按钮,它应该转到第三页,依此类推。但是我当前的应用程序表现得很奇怪,即当我单击第二页中的下一步按钮时,它会转到第四页。当我再次单击第一页中的第一个按钮时,它会跳转到第三页,依此类推..
这是代码。
public class ViewPagerActivity extends AppCompatActivity {
private ViewPager pager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager_act);
setViewPager();
/*pager.setPageTransformer(true, new ZoomPageTransformer());
pager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()));
pager.post(new Runnable() {
@Override
public void run() {
pager.setCurrentItem(position); //don't know how to use this from fragment
}
});*/
}
private void setViewPager() {
pager = (ViewPager) findViewById(R.id.viewPager);
FragmentManager fm = getSupportFragmentManager();
ViewPagerAdapter adapter = new ViewPagerAdapter(fm);
pager.setAdapter(adapter);
}
public void setCurrentItem(int selectedPosition) {
pager.setCurrentItem(selectedPosition, true);
}
private class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager supportFragmentManager) {
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return FirstPager.newInstance();
case 1:
return SecondPager.newInstance();
case 2:
return ThirdPager.newInstance();
case 3:
return FourthPager.newInstance();
case 4:
return FifthPager.newInstance();
case 5:
return SixthPager.newInstance();
default:
return null;
}
}
@Override
public int getCount() {
return 6;
}
}
FirstPager:
public class FirstPager extends Fragment {
private ImageView slideArrow;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.first_pager, container, false);
return v;
}
public static FirstPager newInstance() {
FirstPager fragment = new FirstPager ();
return fragment;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initUI();
}
private void initUI() {
slideArrow = (ImageView) getActivity().findViewById(R.id.next_arrow);
slideArrow.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((ViewPagerActivity)getActivity()).setCurrentItem (1);
}
});
}
}
类似地在其他片段中,我将 currentItem 指定为 2,3,4,5 和 6。但是它的位置行为不正确。
我推荐了一些post,但在我的情况下,我将如何申请从片段传递的方法以使位置正常工作?
【问题讨论】:
-
你在哪里点击?你在点击什么?
-
每个片段中都有一个按钮。即下一个按钮。所以当我点击下一个按钮时,它会滑动到下一页。但问题是位置不合适。 @RushiAyyappa
-
你能发布那个按钮代码吗?
标签: android android-layout android-fragments android-viewpager