【问题标题】:Multiple pages on view pager [duplicate]查看寻呼机上的多个页面[重复]
【发布时间】:2018-06-28 10:12:06
【问题描述】:

我想实现如下视图寻呼机

当你看到页面在缩放时,

我知道我们可以通过信息来实现这一点,但对于 android 来说,我是新手。 我想得到的实际效果如下

我怎样才能达到这个效果?我不知道如何开始请帮助,

【问题讨论】:

  • 请不要重复提问。只需使用您拥有的任何新信息、您尝试过的任何新代码或任何已发布答案不起作用的解释来编辑此帖子,就会将其排在活动队列的顶部。我已将其作为新版本的副本关闭,因为您似乎已经在那里找到了解决方案,但是,在未来,请只编辑原始版本。
  • @NileshRathod 我试图在不同的方法上实现,只是因为屏幕截图不要说两者相同,两者都是不同的有任何想法请分享它会有所帮助,请在标记为重复之前理解我的问题,谢谢

标签: android android-viewpager viewpagerindicator


【解决方案1】:

尝试使用这个逻辑,你肯定可以得到你想要的

代码实现

List<Fragment> fragments = buildFragments();
ArrayList<String> categories = {"1", "2", "3", ..., "n"};
mPager = (ViewPager) v.findViewById(R.id.pager);
mPageAdapter = new MyFragmentPageAdapter(this,getSupportFragmentManager(), fragments, categories);
mPager.setAdapter(mPageAdapter);

//Add a new Fragment to the list with bundle
Bundle b = new Bundle();
b.putInt("position", i);
String title = "asd";
mPageAdapter.add(MyFragment.class, title, b);
mPageAdapter.notifyDataSetChanged();

MyFragmentPageAdapter.java

public class MyFragmentPageAdapter extends FragmentPagerAdapter {

public static int pos = 0;

private List<Fragment> myFragments;
private ArrayList<String> categories;
private Context context;

public MyFragmentPageAdapter(Context c, FragmentManager fragmentManager, List<Fragment> myFrags, ArrayList<String> cats) {
    super(fragmentManager);
    myFragments = myFrags;
    this.categories = cats;
    this.context = c;
}

@Override
public Fragment getItem(int position) {

    return myFragments.get(position);

}

@Override
public int getCount() {

    return myFragments.size();
}

@Override
public CharSequence getPageTitle(int position) {

    setPos(position);
    return categories.get(position);
}

public static int getPos() {
    return pos;
}

public void add(Class<Fragment> c, String title, Bundle b) {
    myFragments.add(Fragment.instantiate(context,c.getName(),b));
    categories.add(title);
}

public static void setPos(int pos) {
    MyFragmentPageAdapter.pos = pos;
}
}

片段列表构建器

private List<android.support.v4.app.Fragment> buildFragments() {
        List<android.support.v4.app.Fragment> fragments = new ArrayList<android.support.v4.app.Fragment>();
        for(int i = 0; i<categories.size(); i++) {
            Bundle b = new Bundle();
            b.putInt("position", i);
            fragments.add(Fragment.instantiate(this,MyPagerFragment.class.getName(),b));
        }

        return fragments;
}

【讨论】:

  • 但这不会产生像上面这样的效果,我认为它具有页面转换功能
  • 用于页面浏览中的动态页面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多