# SushiButton
A view that allows users to tap to trigger an action. SushiButton
is fully based on
MaterialButton
# Features
SushiButton comes with following properties
Attribute | Value |
---|---|
app:buttonDimensions | large , medium or small |
app:buttonType | solid , outline or text |
app:buttonColor | And @color/ attribute that we use to theme the button |
app:drawableLeft | @drawable or @string which is treated as iconfont character |
app:drawableRight | @drawable or @string which is treated as iconfont character |
app:drawableStart | @drawable or @string which is treated as iconfont character |
app:drawableEnd | @drawable or @string which is treated as iconfont character |
NOTE
For all the four drawable properties, use app:drawableLeft
and never android:drawableLeft
.
Behaviour with drawableTop
and drawableBottom
is also unspecified. This view only handles horizontal drawables properly.
# Unsupported Properties
Do not set textSize
, textColor
and background
manually. Rely only on above
properties to set a proper button theme for you.
Setting unsupported properties may throw UnsupportedException in future
# Usage
# Creating in XML
<com.zomato.sushilib.atoms.buttons.SushiButton
app:buttonType="solid"
app:buttonDimensions="large"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Large Button" />
# Changing Properties Programatically
sushiButton.setButtonType(ButtonType.SOLID)
sushiButton.setButtonDimension(ButtonDimension.LARGE)
# Examples
# Types
You can set button type using either XML in layouts, or programatically in Java/Kotlin
# Solid
# Outline
# Text
# Dimensions
INFO
Some libraries (including Google's GMS) use buttonSize
as an attribute
that accepts @dimen
type values. So as to not conflict with that attribute,
we use the attribute buttonDimension
. Do not set size, padding and font size
on your own, and use one of the preset buttonDimension
values only.
# Large
# Medium
# Small
# Colors
We support using any color (we set the text color, the disabled state tint lists accordingly).