Android的:如何在ViewPager创建不同的看法? [英] Android:How to create different view in ViewPager?

查看:125
本文介绍了Android的:如何在ViewPager创建不同的看法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有ViewPager与Android工作室,有一个code这样的创建Main_Activity

I have create Main_Activity with ViewPager with Android Studio that has a code like this

public class MainActivity extends Activity {
    SectionsPagerAdapter mSectionsPagerAdapter;

    ViewPager mViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);

        mSectionsPagerAdapter = new SectionsPagerAdapter(getFragmentManager());        
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mSectionsPagerAdapter);

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {       

          getMenuInflater().inflate(R.menu.main, menu);
          return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

         int id = item.getItemId();
         if (id == R.id.action_settings) {
         return true;
         }
         return super.onOptionsItemSelected(item);
    }

 public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {           
        return PlaceholderFragment.newInstance(position + 1);
    }

    @Override
    public int getCount() {           
        return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
            case 0:
                return getString(R.string.title_section1).toUpperCase(l);
            case 1:
                return getString(R.string.title_section2).toUpperCase(l);
            case 2:
                return getString(R.string.title_section3).toUpperCase(l);
        }
        return null;
    }
}

public static class PlaceholderFragment extends Fragment {

    private static final String ARG_SECTION_NUMBER = "section_number";

    public static PlaceholderFragment newInstance(int sectionNumber) {
        PlaceholderFragment fragment = new PlaceholderFragment();
        Bundle args = new Bundle();
        args.putInt(ARG_SECTION_NUMBER, sectionNumber);
        fragment.setArguments(args);
        return fragment;
    }

    public PlaceholderFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_main, container, false);
        TextView textView = (TextView) rootView.findViewById(R.id.section_label);
        textView.setText(Integer.toString(getArguments().getInt(ARG_SECTION_NUMBER)));
        return rootView;
    }
}

}

在这种情况下,有3个网页,工作fine.My的问题是,如果我想创建这样的自定义视图:  第1页:有3个按钮,4单选按钮  第2页:有2个按键2的TextView  第3页:有1按钮2 ImageView的

In this case has 3 pages that work fine.My question is,if i want to create custom view like: Page 1: has 3 button 4 radiobutton Page 2: has 2 Button 2 TextView Page 3: has 1 button 2 Imageview

如何做到这一点,我应该在哪里把code in.Sorry我的语法,谢谢你所有的答案。

How to do it and where i should put the code in.Sorry for my grammar ,Thank you for all answer.

推荐答案

在我的其他职位一个非常简单的实现你的问题。

A very simple implementation of your question in my other post.

<一个href="http://stackoverflow.com/questions/22067586/how-to-use-swipe-gesture-in-a-view-pagers-page-with-android/22084254#22084254">How使用轻扫手势在视图寻呼机的页面与Android?

在该文章中,我已经提到如何定制每一个布局。在每一个布局,你可以添加自己的按钮或textviews或任何你想添加。例如,在该职位,布局把ViewPager在MainLayout里面,而不是使用图像视图和所有其他的东西,你可以添加自己所需的物品。

In that post I have mention how you can customize every layout. In each layout you can add your own buttons or textviews or whatever you want to add. For example, in that post, Layout to put inside the ViewPager in MainLayout, instead of using that image view and all other things, you can add your own desired items.

我肯定会解决你的问题,你也可以添加尽可能多的布局,你可以,只是在做这样的适配器变化:

I am sure that will solve you problem and also you can add as many layouts as you can and just make that change in the adapter like this:

private class MyPagerAdapter extends PagerAdapter {

下面可以是你的页数。你可以增加你的页面数量取决于你的布局。

Here can be your page count.. You can increase you page count depending on your layouts.

public int getCount() {
            return 3;
        }

        public Object instantiateItem(ViewGroup container, int position) {
            LayoutInflater inflater = (LayoutInflater) container.getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            // Using different layouts in the view pager instead of images.

            int resId = -1;

                   //Getting my layout's in my adapter. Three layouts defined.

在这里,您可以将您的布局你设计。

Here you can add your layouts you have designed.

  switch (position) {
            case 0:
                resId = R.layout.tutorial1;
                break;
            case 1:
                resId = R.layout.tutorial2;
                break;
            case 2:
                resId = R.layout.tutorial3;
                break;

            }

            View view = inflater.inflate(resId, container, false);
            ((ViewPager) container).addView(view, 0);
            return view;
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            container.removeView((View) object);
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == object;
        }

    }

}

希望我回答你的问题..:)

Hope I answered your question .. :)

这篇关于Android的:如何在ViewPager创建不同的看法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆