From 9d3743c3a80f2bcea6c2adeef6f5fe808f0d9021 Mon Sep 17 00:00:00 2001 From: Tony Date: Tue, 2 May 2017 21:56:27 -0700 Subject: [PATCH] Fix center-align issue in widgets bottom sheet - Remove paddingStart - To add padding for multiple widgets, add empty view to scrollview Bug: 37918677 Change-Id: I5ec1208765874dda1c4439f60aaeb989c06ccd63 --- res/layout/widgets_bottom_sheet.xml | 1 - .../android/launcher3/widget/WidgetsBottomSheet.java | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/res/layout/widgets_bottom_sheet.xml b/res/layout/widgets_bottom_sheet.xml index 826235bfb..c2270d212 100644 --- a/res/layout/widgets_bottom_sheet.xml +++ b/res/layout/widgets_bottom_sheet.xml @@ -19,7 +19,6 @@ android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingStart="16dp" android:paddingTop="28dp" android:background="?android:attr/colorPrimary" android:elevation="@dimen/deep_shortcuts_elevation" diff --git a/src/com/android/launcher3/widget/WidgetsBottomSheet.java b/src/com/android/launcher3/widget/WidgetsBottomSheet.java index a423154f4..5fe00c2d5 100644 --- a/src/com/android/launcher3/widget/WidgetsBottomSheet.java +++ b/src/com/android/launcher3/widget/WidgetsBottomSheet.java @@ -133,10 +133,19 @@ public class WidgetsBottomSheet extends AbstractFloatingView implements Insettab } } - // If there is only one widget, we want to center it instead of left-align. - WidgetsBottomSheet.LayoutParams params = (WidgetsBottomSheet.LayoutParams) - widgetRow.getLayoutParams(); - params.gravity = widgets.size() == 1 ? Gravity.CENTER_HORIZONTAL : Gravity.START; + if (widgets.size() == 1) { + // If there is only one widget, we want to center it instead of left-align. + WidgetsBottomSheet.LayoutParams params = (WidgetsBottomSheet.LayoutParams) + widgetRow.getLayoutParams(); + params.gravity = Gravity.CENTER_HORIZONTAL; + } else { + // Otherwise, add an empty view to the start as padding (but still scroll edge to edge). + View leftPaddingView = LayoutInflater.from(getContext()).inflate( + R.layout.widget_list_divider, widgetRow, false); + leftPaddingView.getLayoutParams().width = Utilities.pxFromDp( + 16, getResources().getDisplayMetrics()); + widgetCells.addView(leftPaddingView, 0); + } } private void addDivider(ViewGroup parent) { -- 2.11.0