Merge "Use padding in pages instead of pageMargin" into sc-dev am: 6be330eff3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14548610 Change-Id: I0df5b5aa5b783ec56578dc48c37182d87dbb2945
This commit is contained in:
@@ -18,4 +18,8 @@
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/tile_page"
|
||||
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
|
||||
public void setPageMargin(int marginPixels) {
|
||||
if (marginPixels != getPageMargin()) {
|
||||
super.setPageMargin(marginPixels);
|
||||
// Using page margins creates some rounding issues that interfere with the correct position
|
||||
// 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);
|
||||
// Set it as double the side margin (to simulate end margin of current page +
|
||||
// start margin of next page).
|
||||
qsPanelController.setPageMargin(2 * mSideMargins);
|
||||
qsPanelController.setPageMargin(mSideMargins);
|
||||
} else if (view == mHeader) {
|
||||
// No content padding for the header.
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user