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">
+
+