From b5c6b8b62a6208dafab2d2949f9c660e2390519c Mon Sep 17 00:00:00 2001 From: max Date: Thu, 21 Jul 2016 22:49:11 -0700 Subject: [PATCH] Made it possible to set spans on menu labels, to further improve ability to customize fab --- .../github/clans/fab/FloatingActionButton.java | 6 +++--- .../github/clans/fab/FloatingActionMenu.java | 8 ++++---- .../clans/fab/sample/FloatingMenusActivity.java | 17 +++++++++++++++-- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/library/src/main/java/com/github/clans/fab/FloatingActionButton.java b/library/src/main/java/com/github/clans/fab/FloatingActionButton.java index ea72dd2..bddd8cc 100755 --- a/library/src/main/java/com/github/clans/fab/FloatingActionButton.java +++ b/library/src/main/java/com/github/clans/fab/FloatingActionButton.java @@ -63,7 +63,7 @@ public class FloatingActionButton extends ImageButton { private int mIconSize = Util.dpToPx(getContext(), 24f); private Animation mShowAnimation; private Animation mHideAnimation; - private String mLabelText; + private CharSequence mLabelText; private OnClickListener mClickListener; private Drawable mBackgroundDrawable; private boolean mUsingElevation; @@ -1075,7 +1075,7 @@ public void toggle(boolean animate) { } } - public void setLabelText(String text) { + public void setLabelText(CharSequence text) { mLabelText = text; TextView labelView = getLabelView(); if (labelView != null) { @@ -1083,7 +1083,7 @@ public void setLabelText(String text) { } } - public String getLabelText() { + public CharSequence getLabelText() { return mLabelText; } diff --git a/library/src/main/java/com/github/clans/fab/FloatingActionMenu.java b/library/src/main/java/com/github/clans/fab/FloatingActionMenu.java index 9f3d98a..aa2f4ac 100755 --- a/library/src/main/java/com/github/clans/fab/FloatingActionMenu.java +++ b/library/src/main/java/com/github/clans/fab/FloatingActionMenu.java @@ -101,7 +101,7 @@ public class FloatingActionMenu extends ViewGroup { private int mLabelsPosition; private Context mLabelsContext; - private String mMenuLabelText; + private CharSequence mMenuLabelText; private boolean mUsingMenuLabel; public interface OnMenuToggleListener { @@ -472,7 +472,7 @@ public void onClick(View v) { } private void addLabel(FloatingActionButton fab) { - String text = fab.getLabelText(); + CharSequence text = fab.getLabelText(); if (TextUtils.isEmpty(text)) return; @@ -1001,11 +1001,11 @@ public void removeAllMenuButtons() { } } - public void setMenuButtonLabelText(String text) { + public void setMenuButtonLabelText(CharSequence text) { mMenuButton.setLabelText(text); } - public String getMenuButtonLabelText() { + public CharSequence getMenuButtonLabelText() { return mMenuLabelText; } diff --git a/sample/src/main/java/com/github/clans/fab/sample/FloatingMenusActivity.java b/sample/src/main/java/com/github/clans/fab/sample/FloatingMenusActivity.java index ef5665e..3a437da 100755 --- a/sample/src/main/java/com/github/clans/fab/sample/FloatingMenusActivity.java +++ b/sample/src/main/java/com/github/clans/fab/sample/FloatingMenusActivity.java @@ -5,9 +5,16 @@ import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Intent; +import android.graphics.Color; +import android.graphics.Typeface; import android.os.Bundle; import android.os.Handler; import android.support.v7.app.AppCompatActivity; +import android.text.Spannable; +import android.text.SpannableStringBuilder; +import android.text.Spanned; +import android.text.style.ForegroundColorSpan; +import android.text.style.StyleSpan; import android.view.ContextThemeWrapper; import android.view.MenuItem; import android.view.View; @@ -15,9 +22,9 @@ import android.view.animation.OvershootInterpolator; import android.widget.Toast; -import com.github.fab.sample.R; import com.github.clans.fab.FloatingActionButton; import com.github.clans.fab.FloatingActionMenu; +import com.github.fab.sample.R; import java.util.ArrayList; import java.util.List; @@ -124,6 +131,12 @@ public void onMenuToggle(boolean opened) { fab2 = (FloatingActionButton) findViewById(R.id.fab2); fab3 = (FloatingActionButton) findViewById(R.id.fab3); + + Spannable spannedText = new SpannableStringBuilder("This is spanned text"); + spannedText.setSpan(new ForegroundColorSpan(Color.RED), 0, 4, Spanned.SPAN_INCLUSIVE_INCLUSIVE); + spannedText.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 8, 16, Spanned.SPAN_INCLUSIVE_INCLUSIVE); + fab3.setLabelText(spannedText); + fab12 = (FloatingActionButton) findViewById(R.id.fab12); fab22 = (FloatingActionButton) findViewById(R.id.fab22); fab32 = (FloatingActionButton) findViewById(R.id.fab32); @@ -203,7 +216,7 @@ public boolean onOptionsItemSelected(MenuItem item) { private View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View v) { - String text = ""; + CharSequence text = ""; switch (v.getId()) { case R.id.fab1: