code

페이지 조각 사이의 Android ViewPager 패딩 / 여백

codestyles 2020. 12. 27. 10:54
반응형

페이지 조각 사이의 Android ViewPager 패딩 / 여백


Android Market / Google Music은 .NET Framework에 포함 된 여러 조각 사이에 일종의 간격이있을 수 있습니다 ViewPager.

이것이 어떻게 수행되는지 아십니까? 실제 조각보기에 여백 / 패딩을 추가하는 것은 작동하지 않습니다.보기가 여전히 화면의 전체 너비를 차지해야하기 때문입니다. '간격'은 ViewPager를 스 와이프 할 때만 표시됩니다.


에서 지원 패키지, 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());
}

이것이 ViewPager 및 페이지 여백을 가진 사람을 도울 수 있기를 바랍니다 .

ViewPagerCardView 이고 viewpager 페이지 사이의 패딩과 여백에 문제 있기를 원했습니다 . setPageMargin이 전혀 작동하지 않았습니다. 다음을 사용해야했습니다.

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

이렇게하면 페이지가 매우 가깝게 배치 될 수 있습니다.

페이지 사이에 작은 여백이있는 뷰 페이저의 예.


  viewPager.setPageMargin(dpToPx(10)); 
  // replace 10 with the value you want for margin in dp. 


 public int dpToPx(int dp) {
    DisplayMetrics displayMetrics = getActivity().getResources().getDisplayMetrics();
    return Math.round(dp * (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));
 }

이 시도 .

    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);

pager.setClipToPadding (false); pager.setPadding (left, 0, right, 0); viewpager에서 두 페이지 사이에 공간이 필요하면 pager.setPageMargin (int);


이 시도

    viewPager.setClipToPadding(false);
    viewPager.setOffscreenPageLimit(2);
    viewPager.setPadding(20, 0, 20, 0);

다음은 샘플 솔루션입니다.

ViewPager.OnPageChangeListenerViewPager를 사용하는 활동 또는 조각에서를 구현하십시오 .

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        int tabStripChildCount = mTabStrip.getChildCount();

        for (int i=0 ; i < tabStripChildCount ; i++){
            View view = mTabStrip.getChildAt(i);

            ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
            p.setMargins(0, 0, 50, 0);
            view.requestLayout();

    }

mTabStrip은 활동 또는 조각의 테이블 레이아웃입니다.

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

    mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
    View view =  inflater.inflate(R.layout.patient_activity__fragment_tab_viewer, container, false);

    mViewPager = (ViewPager) view.findViewById(R.id.viewPager); 
    mViewPager.setAdapter(mSectionsPagerAdapter);

    mTabStrip = (SlidingTabLayout) view.findViewById(R.id.tabs);

    mTabStrip.setViewPager(mViewPager);
    return view;
}

마침내 제목 조각 사이에 여백이 생깁니다.

참조 URL : https://stackoverflow.com/questions/7343487/android-viewpager-padding-margin-between-page-fragments

반응형