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
diff --git a/res/layout/widgets_bottom_sheet.xml b/res/layout/widgets_bottom_sheet.xml
index 826235b..c2270d2 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 a423154..5fe00c2 100644
--- a/src/com/android/launcher3/widget/WidgetsBottomSheet.java
+++ b/src/com/android/launcher3/widget/WidgetsBottomSheet.java
@@ -133,10 +133,19 @@
}
}
- // 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) {