diff --git a/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDial.java b/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDial.java index 4d82f5b..197a1ff 100644 --- a/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDial.java +++ b/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDial.java @@ -318,9 +318,12 @@ private View createItemView(int index, final MenuItem menuItem) { // Mini FAB final FloatingActionButton miniFab = itemView.findViewById(R.id.fab_mini); if (menuItem.getIcon() != null) { + miniFab.setVisibility(VISIBLE); miniFab.setImageDrawable(menuItem.getIcon()); + miniFab.setEnabled(menuItem.isEnabled()); + } else { + miniFab.setVisibility(GONE); } - miniFab.setEnabled(menuItem.isEnabled()); if (miniFabBackgroundColor != null) { miniFab.setBackgroundTintList(miniFabBackgroundColor); @@ -359,36 +362,43 @@ private View createItemView(int index, final MenuItem menuItem) { // TextView final TextView label = itemView.findViewById(R.id.text); - if (label != null) { - label.setText(menuItem.getTitle()); - label.setEnabled(menuItem.isEnabled()); + label.setText(menuItem.getTitle()); + label.setEnabled(menuItem.isEnabled()); - if (miniFabTextColor != null) { - label.setTextColor(miniFabTextColor); - } - if (miniFabTextColorList != null) { - label.setTextColor(miniFabTextColorList.get(index)); + if (miniFabTextColor != null) { + label.setTextColor(miniFabTextColor); + } + if (miniFabTextColorList != null) { + label.setTextColor(miniFabTextColorList.get(index)); + } + + if (miniFabTextBackground != null) { + Drawable.ConstantState cs = miniFabTextBackground.mutate().getConstantState(); + if (cs != null) { + label.setBackground(cs.newDrawable()); } + } + if (miniFabTextBackgroundList != null) { + label.setBackground(miniFabTextBackgroundList.get(index)); + } - if (miniFabTextBackground != null) { - Drawable.ConstantState cs = miniFabTextBackground.mutate().getConstantState(); - if (cs != null) { - label.setBackground(cs.newDrawable()); + label.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + for (OnMenuItemClickListener listener : menuClickListeners) { + listener.onMenuItemClick(miniFab, label, menuItem.getItemId()); } + closeMenu(); } - if (miniFabTextBackgroundList != null) { - label.setBackground(miniFabTextBackgroundList.get(index)); - } + }); - label.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - for (OnMenuItemClickListener listener : menuClickListeners) { - listener.onMenuItemClick(miniFab, label, menuItem.getItemId()); - } - closeMenu(); - } - }); + if (miniFab.getVisibility() == GONE) { + label.setVisibility(VISIBLE); + float scale = getResources().getDisplayMetrics().density; + int padding = (int) (28 * scale + 0.5f); + MarginLayoutParams labelParams = (MarginLayoutParams) miniFab.getLayoutParams(); + params.setMargins(labelParams.leftMargin, labelParams.topMargin + padding + extraMarginPixel, labelParams.rightMargin, labelParams.bottomMargin + padding + extraMarginPixel); + label.setLayoutParams(labelParams); } // Listener diff --git a/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDialMenuItem.java b/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDialMenuItem.java index 4e70d93..e183378 100644 --- a/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDialMenuItem.java +++ b/library/src/main/java/io/github/kobakei/materialfabspeeddial/FabSpeedDialMenuItem.java @@ -107,7 +107,9 @@ public MenuItem setIcon(Drawable icon) { @Override public MenuItem setIcon(@DrawableRes int iconRes) { - this.icon = AppCompatResources.getDrawable(context, iconRes); + if (iconRes > 0) { + this.icon = AppCompatResources.getDrawable(context, iconRes); + } return this; } diff --git a/library/src/main/res/layout-land/fab_speed_dial_item.xml b/library/src/main/res/layout-land/fab_speed_dial_item.xml index 0802cf5..1e171df 100644 --- a/library/src/main/res/layout-land/fab_speed_dial_item.xml +++ b/library/src/main/res/layout-land/fab_speed_dial_item.xml @@ -8,6 +8,17 @@ android:layout_height="wrap_content" android:gravity="center_vertical|end"> + +