Merge "No divider between floating toolbar item groups" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-04-20 16:53:31 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 65 deletions

View File

@@ -1176,6 +1176,9 @@ public final class FloatingToolbar {
final boolean showIcon = isFirstItem && menuItem.getItemId() == R.id.textAssist;
final View menuItemButton = createMenuItemButton(
mContext, menuItem, mIconTextSpacing, showIcon);
if (!showIcon && menuItemButton instanceof LinearLayout) {
((LinearLayout) menuItemButton).setGravity(Gravity.CENTER);
}
// Adding additional start padding for the first button to even out button spacing.
if (isFirstItem) {
@@ -1200,57 +1203,21 @@ public final class FloatingToolbar {
final int menuItemButtonWidth = Math.min(
menuItemButton.getMeasuredWidth(), toolbarWidth);
final boolean isNewGroup = !isFirstItem && lastGroupId != menuItem.getGroupId();
final int extraPadding = isNewGroup ? menuItemButton.getPaddingEnd() * 2 : 0;
// Check if we can fit an item while reserving space for the overflowButton.
final boolean canFitWithOverflow =
menuItemButtonWidth <=
availableWidth - mOverflowButtonSize.getWidth() - extraPadding;
availableWidth - mOverflowButtonSize.getWidth();
final boolean canFitNoOverflow =
isLastItem && menuItemButtonWidth <= availableWidth - extraPadding;
isLastItem && menuItemButtonWidth <= availableWidth;
if (canFitWithOverflow || canFitNoOverflow) {
if (isNewGroup) {
final View divider = createDivider(mContext);
final int dividerWidth = divider.getLayoutParams().width;
// Add extra padding to the end of the previous button.
// Half of the extra padding (less borderWidth) goes to the previous button.
final View previousButton = mMainPanel.getChildAt(
mMainPanel.getChildCount() - 1);
final int prevPaddingEnd = previousButton.getPaddingEnd()
+ extraPadding / 2 - dividerWidth;
previousButton.setPaddingRelative(
previousButton.getPaddingStart(),
previousButton.getPaddingTop(),
prevPaddingEnd,
previousButton.getPaddingBottom());
final ViewGroup.LayoutParams prevParams = previousButton.getLayoutParams();
prevParams.width += extraPadding / 2 - dividerWidth;
previousButton.setLayoutParams(prevParams);
// Add extra padding to the start of this button.
// Other half of the extra padding goes to this button.
final int paddingStart = menuItemButton.getPaddingStart()
+ extraPadding / 2;
menuItemButton.setPaddingRelative(
paddingStart,
menuItemButton.getPaddingTop(),
menuItemButton.getPaddingEnd(),
menuItemButton.getPaddingBottom());
// Include a divider.
mMainPanel.addView(divider);
}
setButtonTagAndClickListener(menuItemButton, menuItem);
// Set tooltips for main panel items, but not overflow items (b/35726766).
menuItemButton.setTooltipText(menuItem.getTooltipText());
mMainPanel.addView(menuItemButton);
final ViewGroup.LayoutParams params = menuItemButton.getLayoutParams();
params.width = menuItemButtonWidth + extraPadding / 2;
params.width = menuItemButtonWidth;
menuItemButton.setLayoutParams(params);
availableWidth -= menuItemButtonWidth + extraPadding;
availableWidth -= menuItemButtonWidth;
remainingMenuItems.pop();
} else {
break;
@@ -1726,30 +1693,6 @@ public final class FloatingToolbar {
return popupWindow;
}
private static View createDivider(Context context) {
// TODO: Inflate this instead.
View divider = new View(context);
int _1dp = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 1, context.getResources().getDisplayMetrics());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
_1dp, ViewGroup.LayoutParams.MATCH_PARENT);
params.setMarginsRelative(0, _1dp * 10, 0, _1dp * 10);
divider.setLayoutParams(params);
TypedArray a = context.obtainStyledAttributes(
new TypedValue().data, new int[] { R.attr.floatingToolbarDividerColor });
divider.setBackgroundColor(a.getColor(0, 0));
a.recycle();
divider.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
divider.setEnabled(false);
divider.setFocusable(false);
divider.setContentDescription(null);
return divider;
}
/**
* Creates an "appear" animation for the specified view.
*

View File

@@ -536,7 +536,7 @@
<dimen name="floating_toolbar_menu_image_width">24dp</dimen>
<dimen name="floating_toolbar_menu_image_button_width">56dp</dimen>
<dimen name="floating_toolbar_menu_image_button_vertical_padding">12dp</dimen>
<dimen name="floating_toolbar_menu_button_side_padding">11dp</dimen>
<dimen name="floating_toolbar_menu_button_side_padding">8dp</dimen>
<dimen name="floating_toolbar_overflow_image_button_width">60dp</dimen>
<dimen name="floating_toolbar_overflow_side_padding">18dp</dimen>
<dimen name="floating_toolbar_text_size">14sp</dimen>