4

ViewpageIndicator で Layout Adapter を設定する方法を知りたいです。ViewpageIndicator でスクロールしたい 3 つのレイアウトがあります。また、すべてのレイアウトには独自のアクティビティがあります。

SampleCirclesWithListener クラス:

public class SampleCirclesWithListener extends BaseSampleActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.simple_circles);

        mAdapter = new TestFragmentAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);

        mIndicator = (CirclePageIndicator)findViewById(R.id.indicator);
        mIndicator.setViewPager(mPager);

        //We set this on the indicator, NOT the pager
        mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            public void onPageSelected(int position) {
                Toast.makeText(SampleCirclesWithListener.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
            }

            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }

私は解決策を何時間も探していました。誰か助けてくれませんか?どうもありがとうございました!

4

2 に答える 2

2

CommonsWare の優れた回答を拡張し、想像できるコードで埋めるには:

ViewPageIndicator の Jake Wharton のデモ プロジェクトがある場合は、TestFragmentAdapterとが必要TestFragmentです。TestFragmentAdapterクラスは を拡張FragmentPagerAdapterし、クラスTestFragmentは を拡張する必要がありFragmentます。アクティビティを介してページングすることはできませんが、フラグメントを介してページングすることはできます。

を作成し、フラグメント内Fragmentのメソッドを使用してレイアウトに設定します。onCreateView()

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) {

        return inflater.inflate(R.layout.layout, container, false);
    }

FragmentPagerAdapter には、 というメソッドが必要getItem()です。SwitchPosition をフラグメントに設定します。

@Override
            public Fragment getItem(int position) {
                switch(position){
                case 0:
                    TestFragment fragment = new TestFragment();  

                    return fragment;

                case 1:
                            TestFragment2 fragment2 = new TestFragment2();  
                    return fragment2;

                }

                return defaultFragment fragment3 = new defaultFragment();  
                    return fragment3;
            }

これで、希望どおりに動作するはずです。

于 2012-08-12T11:55:58.360 に答える
2

ViewpageIndicator で Layout Adapter を設定する方法を知りたい

「ViewpageIndicator で Layout Adapter を設定」しません。PagerAdapteraに a を設定しViewPager、おそらくそれで aViewPagerIndicatorを使用しViewPagerます。

また、すべてのレイアウトには独自のアクティビティがあります。

ViewPagerアクティビティ間のページングは​​サポートされていません。ビュー間のページングをサポートし、これらのビューはオプションでフラグメント (例: FragmentPagerAdapter) によって管理されます。

于 2012-08-11T19:26:10.033 に答える