0

ページング ビュー

詳細アクティビティが 1 つあります。この中で、ページングコントローラーを使用しています

<android.support.v4.view.ViewPager ..../>フラグメントの詳細ビュー用。

私のコード:

ViewPager pager = (ViewPager) findViewById(R.id.pagerHandbookDetails);

/** Getting fragment manager */
FragmentManager fm = getSupportFragmentManager();

/** Instantiating FragmentPagerAdapter */
DetailsFragmentAdapter pagerAdapter = new DetailsFragmentAdapter(fm,cases);

/** Setting the pagerAdapter to the pager object */
pager.setAdapter(pagerAdapter);
pager.setCurrentItem(0);

次に、 Details Fragment Adapter Class が拡張されますFragmentPagerAdapter

int PAGE_COUNT = 9;

@Override
public Fragment getItem(int arg0) {

    DetailsFragment detailsFragment = new DetailsFragment();
    Bundle data = new Bundle();
    Log.d("Current Page", "Page " + arg0);

    data.putInt("current_page", arg0);
    detailsFragment.setArguments(data);
    return detailsFragment;
}

クラスの詳細 Fragment extendsFragment

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Bundle data = getArguments();
    int mCurrentPage = data.getInt("current_page", 0);
}

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

        layoutPaging = (LinearLayout) v.findViewById(R.id.layoutPagingView);

        for(int i = 0; i < 9; i++){

            ImageView image1 = new ImageView(layoutPaging.getContext());
            image1.setTag(i);

            if(i == mCurrentPage)
            {
                image1.setImageResource(R.drawable.black_dot);
            }
            else
            {
                image1.setImageResource(R.drawable.white_dot);
            }

            layoutPaging.addView(image1); 
        }
        .......
}

こんな感じでうまくいっています。

したがって、ページをスワイプするたびに、明らかに詳細フラグメントページのすべてのコンテンツが移動します。したがって、ページング用のカスタム ビュー レイアウトも移動します。そしてそれは奇妙に見えます。

このレイアウトを静的にして、スワイプ ページごとに画像コンテンツを変更します。

メインの詳細クラスでこのレイアウトを使用している場合、フラグメント アダプターから画像を変更するための現在のページの値を取得していません。フラグメント詳細クラス内の値のみを変更しています。

私はここで立ち往生しています。

4

2 に答える 2

1

以下によって提供されるレイアウトにページ インジケーターを追加できます。

https://github.com/Papercloud/SimpleViewPagerIndicator

コントロールを配置し、viewpager コントローラーのオブジェクトを SimpleViewPagerIndicator に設定するだけで済みます。サンプル コードと実装手順はそこにあります。

これらのクラスを使用すると、ページをスクロールしないインジケーターを取得できます

于 2013-05-22T08:43:44.597 に答える
1

SimpleOnPageChangeListener変更をリッスンするには、この実装を試してくださいpage

private static class PageListener extends SimpleOnPageChangeListener{
        public void onPageSelected(int position) {
            int  currentPage = position;
 }
    }

そして、あなたのViewPagerActivityただの書き込みの中に

private PageListener pageListener;

メソッド内でonCreate()このようにします

    pageListener=new PageListener()
pager.setOnPageChangeListener(pageListener);
于 2013-05-22T06:37:39.617 に答える