Merge "Use padding in pages instead of pageMargin" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6be330eff3
@@ -18,4 +18,8 @@
|
|||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/tile_page"
|
android:id="@+id/tile_page"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"/>
|
android:layout_height="match_parent"
|
||||||
|
android:paddingStart="@dimen/notification_side_paddings"
|
||||||
|
android:paddingEnd="@dimen/notification_side_paddings"
|
||||||
|
android:clipChildren="false"
|
||||||
|
android:clipToPadding="false" />
|
||||||
|
|||||||
@@ -80,8 +80,22 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPageMargin(int marginPixels) {
|
public void setPageMargin(int marginPixels) {
|
||||||
if (marginPixels != getPageMargin()) {
|
// Using page margins creates some rounding issues that interfere with the correct position
|
||||||
super.setPageMargin(marginPixels);
|
// in the onPageChangedListener and therefore present bad positions to the PageIndicator.
|
||||||
|
// Instead, we use negative margins in the container and positive padding in the pages,
|
||||||
|
// matching the margin set from QSContainerImpl (note that new pages will always be inflated
|
||||||
|
// with the correct value.
|
||||||
|
// QSContainerImpl resources are set onAttachedView, so this view will always have the right
|
||||||
|
// values when attached.
|
||||||
|
MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
|
||||||
|
lp.setMarginStart(-marginPixels);
|
||||||
|
lp.setMarginEnd(-marginPixels);
|
||||||
|
setLayoutParams(lp);
|
||||||
|
|
||||||
|
int nPages = mPages.size();
|
||||||
|
for (int i = 0; i < nPages; i++) {
|
||||||
|
View v = mPages.get(i);
|
||||||
|
v.setPadding(marginPixels, v.getPaddingTop(), marginPixels, v.getPaddingBottom());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -295,7 +295,7 @@ public class QSContainerImpl extends FrameLayout {
|
|||||||
qsPanelController.setContentMargins(mContentPadding, mContentPadding);
|
qsPanelController.setContentMargins(mContentPadding, mContentPadding);
|
||||||
// Set it as double the side margin (to simulate end margin of current page +
|
// Set it as double the side margin (to simulate end margin of current page +
|
||||||
// start margin of next page).
|
// start margin of next page).
|
||||||
qsPanelController.setPageMargin(2 * mSideMargins);
|
qsPanelController.setPageMargin(mSideMargins);
|
||||||
} else if (view == mHeader) {
|
} else if (view == mHeader) {
|
||||||
// No content padding for the header.
|
// No content padding for the header.
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user