Giter Club home page Giter Club logo

smartmaterialspinner's People

Contributors

chivorns avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

smartmaterialspinner's Issues

IndexOutOfBoundsExceptions when calling SmartMaterialSpinner#setSelection method

I'm curious about this line of code (highlighted)
Screen Shot 2020-05-08 at 9 44 05 AM

and see the implementation of hint will never be null, because you were always using "" a blanks/empty strings.
Screen Shot 2020-05-08 at 9 42 51 AM
both in setter line 1106 and 256

thus the code:
SmartMaterialSpinner.super.setSelection(hint != null ? finalPosition + 1 : finalPosition, false);

will always having a finalPosition + 1 means the index/position == item.size, IndexOutOfBoundsExceptions occurred

IMHO the rest of the nullability check will having a false-positive instead

cmiiw

Support android:entries

I'm curious why this widget cannot support android:entries, but it would be wonderfully easy if you would add this

Hint label styling not working

<com.google.android.material.textfield.TextInputLayout
android:hint="@string/hint_test"
...
/>
<string name="hint_test">Legal name <font color='#FF0000'>*</font></string>

Above code generates hint label with red * but in this library using same hint label * shows but color doesn't.

Dark mode support

especially when searchable, the inputted text is white with a white background

ItemSelectedListener Problem

spinner.setSelection(0)
spinner.onItemSelectedListener = (object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long ) { //Toast } } override fun onNothingSelected(parent: AdapterView<*>?) { } })
Toast is shown without Item Click inside onCreate() method
I have find that SetSelection() method use Runable to select while your listener is registered and OnItemSelected() called by the listener because of SetSelection() delay.

Preselect an item on the itemList

I use the spinner inside a Fragment. When i choose an item from the list i navigate to another Fragment. I want to load the last state when i get back to the initial Fragment. Is there any method to load a specific item from the list programmatically?

RTL support

Does it support full RTL?
I think the drop down arrow is drawn on the opposite side.

Text size inside the spinner

Hello! smsp_itemSize changes item size only on the item selection? How I change the text size of item inside the spinner? Sorry, if I missed this, but I couldn't seem to find it in the description.

RTL support with outlined spinner

WhatsApp Image 2021-06-22 at 2 49 32 AM

When using smsp_isRtl it doesn't full support rtl

  • First as it appears in the image the arrow supposed to be on left but it stills on right
  • Second the outlined text hint supposed to be on right but it always be in the left

App crashes when you start typing while spinner is scrolling

Steps to reproduce:
select an item in code using spinner.setSelection(position)
click on spinner for selecting item(spinner starts scrolling), in that moment you should start typing something in search.

Also, count of items ~1500

Logs
java.lang.IndexOutOfBoundsException: setSpan (-1 ... 1) starts before 0 at android.text.SpannableStringInternal.checkRange(SpannableStringInternal.java:496) at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:196) at android.text.SpannableStringInternal.setSpan(SpannableStringInternal.java:183) at android.text.SpannableString.setSpan(SpannableString.java:60) at com.chivorn.smartmaterialspinner.SearchableSpinnerDialog$1.getView(SearchableSpinnerDialog.java:209) at android.widget.AbsListView.obtainView(AbsListView.java:2494) at android.widget.HwAbsListView.obtainView(HwAbsListView.java:1139) at android.widget.ListView.makeAndAddView(ListView.java:2119) at android.widget.ListView.fillDown(ListView.java:815) at android.widget.ListView.fillGap(ListView.java:776) at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5646) at android.widget.ListView.trackMotionScroll(ListView.java:2013) at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:5152) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1057) at android.view.Choreographer.doCallbacks(Choreographer.java:875) at android.view.Choreographer.doFrame(Choreographer.java:772) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1042) at android.os.Handler.handleCallback(Handler.java:888) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:213) at android.app.ActivityThread.main(ActivityThread.java:8178) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)

Ability to clear selection

Does it support clearing the selection, e.g. after the spinner is closed and reopened again or has a pre-selected value?

Selected item highlight color stays on same index even after search filter

To reproduce the issue, set a list of items on a searchable SmartMaterialSpinner, then select the first one. The first item in the list is highlighted, since it is selected. Begin to search the list by typing a single character in the search input, and the list updates due to the search filter. However, after doing so, the first item in the list is still highlighted, even though it is not currently the actual selected item. It only seems to care about the index of the selected item from before the search input.

App is crashing

This is my logcat

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.key.myapplication, PID: 23896
java.lang.ArrayIndexOutOfBoundsException: length=10; index=-2
at java.util.ArrayList.get(ArrayList.java:439)
at android.widget.ArrayAdapter.getItem(ArrayAdapter.java:385)
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:441)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407)
at com.chivorn.smartmaterialspinner.SmartMaterialSpinner$HintAdapter.buildView(SmartMaterialSpinner.java:1672)
at com.chivorn.smartmaterialspinner.SmartMaterialSpinner$HintAdapter.getView(SmartMaterialSpinner.java:1646)
at android.widget.Spinner.makeView(Spinner.java:712)
at android.widget.Spinner.layout(Spinner.java:660)
at android.widget.Spinner.onLayout(Spinner.java:622)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:761)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2496)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2212)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Unable to change the list background color

Hi there,

great work!! Thanks.

I am unable to change the background color (in xml nor in java class),

This may not be an issue, maybe I missed something. but could you please suggest how I can achieve it?

Attached is the screenshot.

Best
Vij

screenshot

App crash when you click searchable spinner after changing screen orientation

We are using this spinner inside an Android Fragment. I noticed the app crashing when you attempt to click the searchable spinner after orientation changes.

Steps to reproduce

Create the spinner that allows you to search its items within a fragment
Change the screen orientation to LANDSCAPE then revert back to PORTRAIT
Click the spinner

Logs

java.lang.IllegalStateException: FragmentManager has been destroyed
        at androidx.fragment.app.FragmentManager.enqueueAction(FragmentManager.java:1723)
        at androidx.fragment.app.BackStackRecord.commitInternal(BackStackRecord.java:321)
        at androidx.fragment.app.BackStackRecord.commit(BackStackRecord.java:286)
        at androidx.fragment.app.DialogFragment.show(DialogFragment.java:175)
        at com.chivorn.smartmaterialspinner.SmartMaterialSpinner.performClick(SmartMaterialSpinner.java:763)
        at com.chivorn.smartmaterialspinner.SmartMaterialSpinner.onTouchEvent(SmartMaterialSpinner.java:738)
        at android.view.View.dispatchTouchEvent(View.java:13415)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3054)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2741)
        at com.chivorn.smartmaterialspinner.SmartMaterialSpinner.dispatchTouchEvent(SmartMaterialSpinner.java:731)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3060)
        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2755)
        at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:465)
        at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1849)
        at android.app.Activity.dispatchTouchEvent(Activity.java:3993)
        at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
        at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:423)
        at android.view.View.dispatchPointerEvent(View.java:13674)
        at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5482)
        at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5285)
        at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4788)
        at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4841)
        at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4807)
        at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4947)

How to disable spinner

how can i disable touch/click event to pop up dropdown/dialog itemsview
i've tried setEnabled(false) and setClickable(false) but no luck

Raw use of parameterized class 'SmartMaterialSpinner'

I am using Android Studio 4.1 with targetSDKVersion 30

I am getting a lint check message of:
Raw use of parameterized class 'SmartMaterialSpinner'
Class SmartMaterialSpinner
java.lang.Object
AppCompatSpinner
com.chivorn.smartmaterialspinner.SmartMaterialSpinner

When I use the following code:
private int getIndex(SmartMaterialSpinner spinner, String item) {
int index = -1;
for (int i = 0; i < spinner.getCount(); i++) {
if (spinner.getItemAtPosition(i).equals(item)) {
index = i;
break;
}
}
return index;
}

The warning highlights "SmartMaterialSpinner"

Am I doing something wrong or is it Android Studio that is giving me a false warning?

Sample app crashes

Caused by: java.lang.RuntimeException: Font asset not found fonts/hinted_cello_sans_light.ttf
        at android.graphics.Typeface.createFromAsset(Typeface.java:839)
        at com.chivorn.smartmaterialspinner.SmartMaterialSpinner.initAttributes(SmartMaterialSpinner.java:276)
        at com.chivorn.smartmaterialspinner.SmartMaterialSpinner.init(SmartMaterialSpinner.java:247)

ItemListHint Hide

when drop down is populated how to hide the top hint from the drop down

I am not able to display error

Hello,
i found two issues while using this library

  1. when i m trying to display show error with spProvince.setError("my error") nothing happen
  2. onNothingSelected() not called ever
    how to handle if my spinner have select hint value(default value)?

Thnaks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.