EditText in Material Design

Overview

MaterialEditText

Android Arsenal

NOTE: 2.0 is NOT BACKWARDS COMPATIBLE! See more on wiki or 中文看这里

MaterialEditText

AppCompat v21 makes it easy to use Material Design EditText in our apps, but it's so limited. If you've tried that, you know what I mean. So I wrote MaterialEditText, the EditText in Material Design, with more features that Google Material Design Spec has introduced.

Features

  1. Basic

Basic

  1. Floating Label

normal:

FloatingLabel

highlight:

HighlightFloatingLabel

custom floating label text:

CustomFloatingLabelText

  1. Single Line Ellipsis

SingLineEllipsis

  1. Max/Min Characters

MaxCharacters

MinCharacters

MinAndMaxCharacters

  1. Helper Text and Error Text

HelperTextAndErrorText

  1. Custom Base/Primary/Error/HelperText Colors

CustomColors

  1. Custom accent typeface

floating label, error/helper text, character counter, etc.

CustomAccentTypeface

  1. Hide Underline

HideUnderLine

  1. Material Design Icon

MaterialDesignIcon

Sample

MaterialEditText-2.1.4-sample.apk

Download

Eclipse: MaterialEditText-2.1.4.aar

gradle:

compile 'com.rengwuxian.materialedittext:library:2.1.4'

Maven:

<dependency>
  <groupId>com.rengwuxian.materialedittext</groupId>
  <artifactId>library</artifactId>
  <version>2.1.4</version>
  <type>aar</type>
</dependency>

Usage

See on Wiki Page or 中文看这里

Thanks to

NineOldAndroids

License

Copyright 2014 rengwuxian

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • Widget Margin

    Widget Margin

    For some reason the top and bottom margins of the widget are not matching the screenshot you provided (much bigger in my tests). I don't know if this is how it should look like, but imho the margin amount should be decision of the designer/developer.

    Tested in almost all supported API's with the same outcome.

    Attaching a screenshot of your sample app, but this happened to me when I tried the widget in my own app too.

    wrongmargin

    opened by mradzinski 16
  • App compiled with Android Studio 3.0 crashes on Android < 8.0

    App compiled with Android Studio 3.0 crashes on Android < 8.0

    We encounter the following problem since we've upgraded our project to Android Studio 3.0 (with the Android Gradle plugin 3.0.0):

    Caused by: java.lang.RuntimeException: Font asset not found res/drawable-mdpi-v4/ic_clear_search_api_holo_dark.png
       at android.graphics.Typeface.createFromAsset(Typeface.java:304)
       at com.rengwuxian.materialedittext.MaterialAutoCompleteTextView.getCustomTypeface(MaterialAutoCompleteTextView.java:488)
       at com.rengwuxian.materialedittext.MaterialAutoCompleteTextView.init(MaterialAutoCompleteTextView.java:385)
       at com.rengwuxian.materialedittext.MaterialAutoCompleteTextView.<init>(MaterialAutoCompleteTextView.java:325)
         ... 40 more
    

    It seems that typedArray.getString(R.styleable.MaterialEditText_met_accentTypeface) which is stored in fontPathForAccent suddenly resolves to some random drawable path in MaterialAutoCompleteTextView line 383. However this only happens on devices with Android lower than 8.0.

    Our styles have not been changed during the upgrade to AS 3.0:

    <item name="met_typeface">fonts/UnitRoundedOT.otf</item>
    <item name="met_accentTypeface">fonts/UnitRoundedOT.otf</item>
    

    I have no idea what's going on here...

    opened by svenjacobs 13
  • font size problem

    font size problem

    Hey. Is it possible to have two diferent font sizes for the value and the hint? I can change the value font size but the hint is too small sometimes, and i find no information in the wiki on how to change only the hint font sixr. Is there any option?

    bug 
    opened by recoverrelax 13
  • Clear Button and Floating Label Corrections

    Clear Button and Floating Label Corrections

    • Clear Button is hidden when there is no text to clear, and is properly initialized when the View is created.
    • Floating Label is now shown properly when the text is set programmatically before the View is displayed.
    • Icon Left/Right can now be set from Drawable directly, will still apply stateful styling.
    opened by gtcompscientist 12
  • Attribute

    Attribute "primaryColor" has already been defined error

    Alongside with MaterialEditText I use neokree/MaterialTabs. Both libs use "primaryColor" attribute. Attribute "primaryColor" has already been defined occurs.

    Possible solutions:

    1. Replace app:primaryColor with rengwuxian:primaryColor
    2. Or pick up primaryColor attr from theme declaration
    opened by snorkel123 12
  • Add option to hide underline + couple minor tweaks

    Add option to hide underline + couple minor tweaks

    This pull request adds the ability to hide the underline in the main edittext view, while automatically adjusting the positioning of the views drawn below (it will move them up to fill the now-empty space and look natural). I tested this pretty thoroughly (see "complex" example screenshot), but you should test this out thoroughly as well since spacing can be finicky.

    This addresses #26 and possibly #27 (CC @egor-n)

    I've attached a couple of screenshots at the bottom, but didn't update the README in this request so you can style it they way you like :)

    Couple other tweaks in 7458e49 and e9e3038 dealing with the sample activity UI

    Simple example: screenshot 2014-11-29 04 41 54

    Complex example (code not changed in this pull request): screenshot 2014-11-29 04 42 22

    Sample activity layout tweak with spacing at top and bottom of header: 2014-11-29 12 33 26

    opened by ZacSweers 12
  • Add ability to specify custom hint/edittext colors

    Add ability to specify custom hint/edittext colors

    MaterialEditText currently takes the base color and modifies its opacity. This is good for a default implementation, but in some cases we need the ability to override all colours ourselves.

    Having attributes for the hint, underline, floating label color etc would be great (These would override the base color/primary color etc).

    opened by josh-burton 11
  • java.lang.IllegalArgumentException: Layout: -36 < 0

    java.lang.IllegalArgumentException: Layout: -36 < 0

    From one of my user who is using Micromax A110: This is the error.

    java.lang.IllegalArgumentException: Layout: -36 < 0 at android.text.Layout.(Layout.java:138) at android.text.StaticLayout.(StaticLayout.java:104) at android.text.StaticLayout.(StaticLayout.java:90) at android.text.StaticLayout.(StaticLayout.java:68) at android.text.StaticLayout.(StaticLayout.java:48) at com.rengwuxian.materialedittext.MaterialEditText.adjustBottomLines(MaterialEditText.java:468) at com.rengwuxian.materialedittext.MaterialEditText.setError(MaterialEditText.java:655) at android.widget.TextView$1.run(TextView.java:3333) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:153) at android.app.ActivityThread.main(ActivityThread.java:5086) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) at dalvik.system.NativeStart.main(Native Method)

    opened by iraycd 11
  • Hide Underline changes the size of the view

    Hide Underline changes the size of the view

    When modifying the hideUnderline property, the size of the view changes according to whether the underline is shown or not.

    This is not ideal if the underline is being toggled programmatically, as it may affect the positioning of the text itself (if layout_gravity is anything other than top) or it may affect the placement of any views below it.

    I think that hideUnderline should preserve the space where the underline should go, similarly to the way that View.INVISIBLE works as opposed to View.GONE within layouts.

    Perhaps the View.INVISIBLE and View.GONE values could be used in order to support both variants.

    opened by lavarewindkiosk 10
  • Add icons.

    Add icons.

    Add icons using drawableLeft, drawableRight just like http://material-design.storage.googleapis.com/publish/v_2/material_ext_publish/0Bx4BSt6jniD7MzFBNE9JWTk5ZHc/components_textfields_single9.png

    opened by Wolftein 9
  • "Rendering problems" in Android Studio preview window

    Hi!

    First of all, thanks for an amazingly useful library.

    I'm facing the following issue when opening layouts containing MaterialEditText in the Android Studio Preview:

    Rendering Problems The following classes could not be instantiated: - com.rengwuxian.materialedittext.MaterialEditText (Open Class, Show Exception) Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE

    Here's the stack trace of the exception:

    java.lang.AssertionError
        at android.content.res.BridgeResources.getDimensionPixelSize(BridgeResources.java:397)
        at com.rengwuxian.materialedittext.MaterialEditText.<init>(MaterialEditText.java:159)
        at com.rengwuxian.materialedittext.MaterialEditText.<init>(MaterialEditText.java:149)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:379)
        at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:99)
        at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
        at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
        at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)
        at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)
        at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
        at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809)
        at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
        at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:809)
        at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
        at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:401)
        at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329)
        at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350)
        at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:688)
        at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:677)
        at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
        at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:677)
        at com.android.tools.idea.rendering.RenderService.render(RenderService.java:815)
        at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:611)
        at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1900(AndroidLayoutPreviewToolWindowManager.java:81)
        at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:553)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
        at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
        at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
        at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:548)
        at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
        at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
        at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
        at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
        at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
        at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
        at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
        at com.intellij.util.Alarm$Request$1.run(Alarm.java:327)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:695)
    
    opened by Egorand 9
  • Broken font family when used with new AppCompat

    Broken font family when used with new AppCompat

    When used with appcompat:1.4.0-alpha02, MaterialEditText used default font family that is used app-wide. Simple app shown below: Webp net-resizeimage

    However, when used with new appcompat:1.4.0-alpha03, MaterialEditText changes font:

    Webp net-resizeimage (1)

    Not sure, if it is bug of AppCompat or MaterialEditText, but it definitely needs to be investigated.

    opened by kuba14 0
  • MaterialEditText长度长时,clearbutton不可点击问题

    MaterialEditText长度长时,clearbutton不可点击问题

    在MaterialEditText中,修改注释掉的几行 private boolean insideClearButton(MotionEvent event) { float x = event.getX(); float y = event.getY(); int startX = getWidth()-(iconOuterWidth + iconPadding)); int endX= getWidth() ; //int startX = getScrollX() + (iconLeftBitmaps == null ? 0 : (iconOuterWidth + iconPadding)); //int endX = getScrollX() + (iconRightBitmaps == null ? getWidth() : getWidth() - iconOuterWidth - iconPadding); int buttonLeft; if (isRTL()) { buttonLeft = startX; } else { buttonLeft = endX - iconOuterWidth; } // int buttonTop = getScrollY() + getHeight() - getPaddingBottom() + bottomSpacing - iconOuterHeight;

    int buttonTop = getHeight() - getPaddingBottom() -bottomSpacing - iconOuterHeight; return (x >= buttonLeft && x < buttonLeft + iconOuterWidth && y >= buttonTop && y < buttonTop + iconOuterHeight); }

    opened by hub-zjy1024 0
  • NullPointerException on Layout.getLineForOffset(int) Editor.java file

    NullPointerException on Layout.getLineForOffset(int) Editor.java file

    Recently migrated the project to AndroidX and below crash is happening only on Android 10 Xiaomi phones. Please help

    Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.text.Layout.getLineForOffset(int)' on a null object reference at android.widget.Editor$ActionPinnedPopupWindow.computeLocalPosition(Editor.java:3255) at android.widget.Editor$PinnedPopupWindow.show(Editor.java:3577) at android.widget.Editor$ActionPinnedPopupWindow.show(Editor.java:3420) at android.widget.Editor$EmailAddPopupWindow.show(Editor.java:4944) at android.widget.Editor$1.run(Editor.java:1485) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7509) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)

    opened by jyotisakhareNira 9
  • How can change bg color of dropdown?

    How can change bg color of dropdown?

    In layout:

     <com.rengwuxian.materialedittext.MaterialAutoCompleteTextView
                    android:id="@+id/recipient_edit_text"
                    style="@style/EditText.OneLine"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/standard_padding"
                    android:completionThreshold="0"
                    android:hint="@string/recipient_label"
                    android:inputType="phone"
                    android:paddingEnd="42dp"
                    android:paddingRight="42dp"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:met_floatingLabelAlwaysShown="true"
                    app:met_floatingLabelText="@string/tx_recipient" /
    
    
    

    and here reult:

    Screenshot_1590148032

    I need to change bg color (black) of dropdown to white color.

    opened by alexei-28 0
  • How to set margin or padding to error label?

    How to set margin or padding to error label?

    How to set margin or padding to error label? Can any buddy show me the way to set padding or margin to error label.

    <com.google.android.material.card.MaterialCardView
                    style="@style/AppEditTextShadow">
    
                    <com.devdigital.core.widget.AppEditText
                        android:id="@+id/edtUserName"
                        style="@style/AppEditText"
                        android:hint="@string/hint_email_address"
                        android:inputType="textEmailAddress" />
    
                </com.google.android.material.card.MaterialCardView>
    

    Styles

    <style name="AppEditTextShadow">
            <item name="android:layout_width">match_parent</item>
            <item name="android:layout_height">wrap_content</item>
            <item name="cardBackgroundColor">@color/colorEditTextBackground</item>
            <item name="cardCornerRadius">@dimen/DP4</item>
            <item name="cardElevation">@dimen/DP8</item>
            <item name="cardPreventCornerOverlap">true</item>
            <item name="cardUseCompatPadding">true</item>
        </style>
    
     <style name="AppEditText">
            <item name="android:layout_width">match_parent</item>
            <item name="android:layout_height">wrap_content</item>
            <item name="android:padding">@dimen/DP8</item>
            <item name="android:lines">1</item>
            <item name="android:singleLine">true</item>
            <item name="android:background">@drawable/edittext_selector</item>
            <item name="android:textAppearance">@style/TextAppearance.AppCompat.Small</item>
            <item name="met_textColor">@color/colorWhite</item>
            <item name="met_textColorHint">#b2acd8</item>
            <item name="met_floatingLabel">none</item>
            <item name="met_hideUnderline">true</item>
        </style>
    
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_focused="true" android:drawable="@drawable/edittext_bg"/>
        <item android:drawable="@drawable/edittext_normal_bg"/>
    </selector>
    
    edittext_normal_bg.xml
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <stroke android:color="#00000000" android:width="1dp"/>
        <corners android:radius="4dp"/>
    </shape>
    
    edittext_bg.xml
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <stroke android:color="@color/colorWhite" android:width="1dp"/>
        <corners android:radius="4dp"/>
    </shape>
    

    Check Screenshot here

    opened by hitesh-dhamshaniya 0
Releases(2.1.4)
Owner
Kai Zhu
Kai Zhu
A library to bring fully animated Material Design components to pre-Lolipop Android.

Material MaterialLibrary is an Open Source Android library that back-port Material Design components to pre-Lolipop Android. MaterialLibrary's origina

Rey Pham 6k Dec 21, 2022
Material Design icons by Google

Material design icons Material design icons is the official icon set from Google. The icons are designed under the material design guidelines. 4.0.0 U

Google 47.1k Jan 9, 2023
The flexible, easy to use, all in one drawer library for your Android project. Now brand new with material 2 design.

MaterialDrawer ... the flexible, easy to use, all in one drawer library for your Android project. What's included ?? • Setup ??️ • Migration Guide ??

Mike Penz 11.6k Dec 27, 2022
A Material Design ViewPager easy to use library

MaterialViewPager Material Design ViewPager easy to use library Sample And have a look on a sample Youtube Video : Youtube Link Download In your modul

Florent CHAMPIGNY 8.2k Jan 1, 2023
Floating Action Button for Android based on Material Design specification

FloatingActionButton Yet another library for drawing Material Design promoted actions. Features Support for normal 56dp and mini 40dp buttons. Customi

Zendesk 6.4k Dec 26, 2022
Implementation of Ripple effect from Material Design for Android API 9+

RippleEffect ExpandableLayout provides an easy way to create a view called header with an expandable view. Both view are external layout to allow a ma

Robin Chutaux 4.9k Dec 30, 2022
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.

Carbon Material Design implementation for Android 4.0 and newer. This is not the exact copy of the Lollipop's API and features. It's a custom implemen

null 3k Jan 9, 2023
Material Design ProgressBar with consistent appearance

MaterialProgressBar Material Design ProgressBar with consistent appearance on Android 4.0+. Why MaterialProgressBar? Consistent appearance on Android

Hai Zhang 2.2k Dec 21, 2022
Navigation Drawer Activity with material design style and simplified methods

MaterialNavigationDrawer Navigation Drawer Activity with material design style and simplified methods       It requires 10+ API and android support v7

Fabio Biola 1.6k Jan 5, 2023
Android drawer icon with material design animation

LDrawer Android drawer icon with material design animation Note Basically same as appcompat_v7 version 21, you can use appcompat_v7 compile 'com.andro

Hasan Keklik 1.4k Dec 25, 2022
Custom Tabs with Material Design effects

MaterialTabs Custom Tabs with Material Design animations for pre-Lollipop devices       Download example apk It requires 14+ API and android support v

Fabio Biola 1.4k Dec 29, 2022
[] Android Library that implements Snackbars from Google's Material Design documentation.

DEPRECATED This lib is deprecated in favor of Google's Design Support Library which includes a Snackbar and is no longer being developed. Thanks for a

null 1.5k Dec 16, 2022
Android Sample Project with Material Design and Toolbar.

AndroidMaterialDesignToolbar -- PROJECT IS NOT SUPPORTED Android Sample Project with Material Design and Toolbar. Project use Appcompat library for ma

kemal selim tekinarslan 713 Nov 11, 2022
Custom drawer implementation for Material design apps.

material-drawer Custom drawer implementation for Material design apps. Demo A demo app is available on Google Play: Screenshots Fixed items Select pro

Jan Heinrich Reimer 600 Nov 18, 2022
Android drawer icon with material design animation

LDrawer Android drawer icon with material design animation Note Basically same as appcompat_v7 version 21, you can use appcompat_v7 compile 'com.andro

Hasan Keklik 1.4k Dec 25, 2022
Floating Action Button for Android based on Material Design specification

FloatingActionButton Yet another library for drawing Material Design promoted actions. Features Support for normal 56dp and mini 40dp buttons. Customi

Zendesk 6.4k Jan 3, 2023
Material Design ProgressBar with consistent appearance

MaterialProgressBar Material Design ProgressBar with consistent appearance on Android 4.0+. Why MaterialProgressBar? Consistent appearance on Android

Hai Zhang 2.2k Jan 1, 2023
Material Design RatingBar with better appearance

MaterialRatingBar Material Design RatingBar with better appearance, compatible with Android 3.0+. Why MaterialRatingBar? Consistent appearance on Andr

Hai Zhang 1.9k Dec 26, 2022
A library support form with material design, construct same with Android UI Framework

SwingUI A slight Java Swing library support form with material design, construct same with Android UI Framework writen in Kotlin Supported: 1. Screen:

Cuong V. Nguyen 3 Jul 20, 2021