Major update
- Stripping main library classes to bare minimum -
MaterialMenuDrawable
andMaterialMenuView
. - Removed all
extras
packages since ActionBarCompat or ActionBarSherlock are not being maintained for quite a while now. Most usages will be withToolbar
. Integrating the drawable into it will be up to the user of the library (see README or demo). - Removed
nineoldadroids
dependency - reduced method count by 929! - Bumped min api version to 14
- Added
app:mm_iconState="enum"
attribute toMaterialMenuView
that allows setting the initial state of the drawable.
- Use
AppCompatActivity
instead ofActionBarActivity
forextras-toolbar
package - BUG FIX:
MaterialMenuView
visibility is now preserved onSavedState
API break: Circle pressed state is no longer supported.
MaterialMenu.animatePressedState(IconState)
is now deprecated and should be replaced
by MaterialMenu.animateState(IconState)
MaterialMenu.setPressedDuration(int)
has been removed.
Added new API to allow setting icon visibility
Usage:
MaterialMenu.setVisible(boolean visible)
- Added MaterielMenuIcon support for non-Toolbar ActionBarCompat v21
Usage: MaterialMenuIconCompat
in extras-toolbar
package
- Added API to set an animation listener to MaterialMenuDrawable
Usage: MaterialMenu.setAnimationListener(Animator.AnimatorListener)
- BUG FIX: Draw circle pressed state when switching to the same icon
- Revamped CHECK and X icons to suit Material design better.
If old icons are required, use material-menu:1.4.0
- BUG FIX: support all ActionBar Sherlock Activity classes
- Added EXTRAS: Toolbar support for
MaterialMenuIcon
.
Usage:
import com.balysv.materialmenu:material-menu-toolbar:1.x.x
and use MaterielMenuIconToolbar
- BUG FIX: left margin fix for Jellybean and ICS devices using
MaterialMenuIcon
- UI fix: Remove up arrow indicator margins when using
MaterialMenuIcon
since you could see some extra space on the left side of the icon. If a different margin is required, find the 'Home' view of the ActionBar and apply them (example for stock ActionBar) :
View view = activity.getWindow().getDecorView().findViewById(
resources.getIdentifier("android:id/home", null, null)
);
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
params.leftMargin = someMargin;
MaterialMenuBase
abstraction improvements
- Added new API to allow manual animation to any IconState. For example when sliding a navigation drawer.
Usage:
MaterialMenu.setTransformationOffset(AnimationState state, float value)
where AnimationState
is one of BURGER_ARROW, BURGER_X, ARROW_X, ARROW_CHECK, BURGER_CHECK, X_CHECK
and value
is between 0
and 2
- Added RTL layout support. When enabled, it flips all icons horizontally.
Usage: Use API MaterialMenu.setRTLEnabled(boolean enabled)
or set an xml
attribute mm_rtlEnabled="boolean"
- Added new API to get current IconState.
Usage: MaterialMenu.getIconState()
- BUG FIX: A crash with
MaterialMenuView
inflation
MaterialMenuView
now takes padding into account and positionMaterialMenuDrawable
accordingly
- BUG FIX: Added a prefix to ambiguous xml attributes https://code.google.com/p/android/issues/detail?id=22576
Now:
app:mm_color="color"
app:mm_transformDuration="integer"
app:mm_pressedDuration="integer"
app:mm_scale="integer"
app:mm_strokeWidth="integer"
- BUG FIX: Added
ConstantState
toMaterialMenuDrawable
, so it behaves correctly with Expandable ActionBar items. The implementation is not correct per se cause it doesn't provide a staticConstantState
but it does the job.
- added new attribute
Stroke
. It adjusts icon paint stroke width for further customisation. Possible values areStroke.REGULAR
,Stroke.THIN
andStroke.EXTRA_THIN
Usage: Provide Stroke
value to a constructor or use xml
attribute strokeWidth
for MaterialMenuView
- improved CHECK to ARROW animation by adding more motion to the transformation
- animatePressedState(), animateState() and setState() now cancels running transformation so you can spam the button and result in a correct state.
- Changed Maven ArtifactId to
com.balysv.materialmenu
for extras support - Added support to API 9 and higher using NineOldAndroids
- Added EXTRAS: ActionBarCompat and ActionBarSherlock support
Usage:
- import
com.balysv.materialmenu:material-menu-abs:1.1.1
for ActionBarSherlock and useMaterialMenuIconSherlock
- import
com.balysv.materialmenu:material-menu-abc:1.1.1
for ActionBarCompat and useMaterialMenuIconCompat
.
- Added new morphing icon - CHECK
Usage: Use standard API with IconState.CHECK
Initial release.