63

Android マーケット/Google ミュージックでは、ViewPager.

これがどのように行われるか考えていますか?ビューが画面の幅全体を占める必要があるため、実際のフラグメント ビューにマージン/パディングを追加しても機能しません。「ギャップ」は、ViewPager をスワイプしたときにのみ表示されます。

4

7 に答える 7

128

サポート パッケージ r4 では、次のメソッドを使用できます。

setPageMargin(int marginPixels)
setPageMarginDrawable(Drawable)
setPageMarginDrawable(int)

ViewPagerクラスで。

これが XML に同等のものがない理由がわかりません :-(

ディップユニットを使用する必要がある場合は、次の方法を使用できます。

public static int convertDip2Pixels(Context context, int dip) {
    return (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, context.getResources().getDisplayMetrics());
}
于 2011-11-01T21:11:43.503 に答える
24

これがViewPagerとページの余白を持っている人に役立つことを願っています。

ViewPager をCardViewにしたかったのですが、 viewpagerページ間のパディングとマージンに問題がありました。setPageMargin はまったく機能しませんでした。私は以下を使用しなければなりませんでした:

int pagerPadding = 16;
pager.setClipToPadding(false);
pager.setPadding(pagerPadding, 0, pagerPadding, 0);

これにより、ページを非常に近づけることができます。

ページ間のマージンが小さいビューページャーの例。

于 2015-11-17T21:57:41.143 に答える
5

これを試して 。

    ViewPager viewPager = (ViewPager) findViewById(R.id.h_view_pager);
    viewPager.setClipToPadding(false);
    viewPager.setPadding(60, 0, 60, 0);
    viewPager.setPageMargin(20);
    ImagePagerAdapter adapter = new ImagePagerAdapter();
    viewPager.setOffscreenPageLimit(adapter.getCount());
    viewPager.setAdapter(adapter);
于 2016-11-21T11:43:25.630 に答える
2

pager.setClipToPadding(false); pager.setPadding(左、0、右、0); ビューページャーの 2 つのページ間にスペースが必要な場合は、pager.setPageMargin(int); を追加します。

于 2016-09-29T11:28:52.947 に答える