arcadefire / nice-spinner Goto Github PK
View Code? Open in Web Editor NEWA nice spinner for Android
License: Apache License 2.0
A nice spinner for Android
License: Apache License 2.0
I can change spinner items font as said in this link :
stackOverflow Link
but when I change the instance to the niceSpinner it doesn't work anymore.
getSelectedIndex() only shows 0, when i select another item it doesn't change it's value.
How to scroll?
Hi,
It's possible to set a custom class as datasource ? I want to use value text to bind. Query use value, Display use text. Thanks.
Since it 'WRAP's around the content, the Popup window becomes as tall as the screen without any gap below it in case the items inside the spinner are in dozens.
got few crashes from these devices:
Caused by android.view.InflateException: Binary XML file line #16: Error inflating class org.angmarch.views.NiceSpinner at android.view.LayoutInflater.createView(LayoutInflater.java:640) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:750) at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:902) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:511) at android.view.LayoutInflater.inflate(LayoutInflater.java:415) at android.view.LayoutInflater.inflate(LayoutInflater.java:366) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at yeah.b.onCreate(PlayerBase.java:103) at yeah.VideoPlayerActivity.onCreate(VideoPlayerActivity.java:25) at android.app.Activity.performCreate(Activity.java:6575) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1134) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3121) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3278) at android.app.ActivityThread.access$1000(ActivityThread.java:211) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1705) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:6918) at java.lang.reflect.Method.invoke(Method.java) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Multiple NiceSpinner click animation display abnormal
1.cannot setBackgroundColor.
2.No self-adaptive
how to change textSize?
good work there... can you upload it to mavencentral?
I have a basic view, where the spinner is inside the relative layout and is at the bottom of the screen but the spinner doesn't expand upwards. I placed the nice-spinner and the default android spinner side by side in the same layout for comparison. The default spinner expands upwards but the nice-spinner doesn't. Please help.
Here is my layout -
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.royab.myapplication.MainActivity">
<org.angmarch.views.NiceSpinner
android:id="@+id/bitmap_selection_spinner"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"></Spinner>
</RelativeLayout>
And here is the acitivity
```
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NiceSpinner niceSpinner = (NiceSpinner) findViewById(R.id.bitmap_selection_spinner);
List<String> dataset = new LinkedList<>(Arrays.asList("One", "Two", "Three", "Four", "Five"));
niceSpinner.attachDataSource(dataset);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
List<String> list = new ArrayList<String>();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter);
}
}
Here's what it looks like - https://imgur.com/VB2VUuZ
Please help.
There is no version no mentioned.How to import in android studio ?
Thanks
Here is the logcat:
FATAL EXCEPTION: main
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: Process: com.dp.needdepartmentalstore1, PID: 24823
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at java.util.Arrays$ArrayList.get(Arrays.java:66)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at org.angmarch.views.NiceSpinnerAdapter.getItemInDataset(NiceSpinnerAdapter.java:36)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at org.angmarch.views.NiceSpinner.setAdapterInternal(NiceSpinner.java:232)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at org.angmarch.views.NiceSpinner.attachDataSource(NiceSpinner.java:222)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at com.dp.needdepartmentalstore.ProductsAdapter.onBindViewHolder(ProductsAdapter.java:89)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at com.dp.needdepartmentalstore.ProductsAdapter.onBindViewHolder(ProductsAdapter.java:25)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5212)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5245)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4483)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4359)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1370)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1161)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1018)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3807)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.view.Choreographer.doCallbacks(Choreographer.java:580)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.view.Choreographer.doFrame(Choreographer.java:549)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5254)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
11-14 17:29:11.667 24823-24823/com.dp.needdepartmentalstore1 E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
This occurs when we select different spinner value of particular cell and then scroll the recyclerview. Basically the mSelectedIndex of nicespinner.java
doesn't get updated and holds the previous selected item index of different cell which generate out of bound exception.
Hello guys, I found an error when I tried to reload data to a same NiceSpinner. With the regular spinner I can reload the data.
For whatever the reason, when I open and close the dropdown list then the opened style paddings are lost.
I couldn't find the reason so I changed the viewholder to store the initial paddings as a temporarily solutions.
protected static class ViewHolder {
private int paddingLeft;
private int paddingRight;
private int paddingTop;
private int paddingBottom;
public TextView textView;
public ViewHolder(TextView textView) {
this.paddingLeft = textView.getPaddingLeft();
this.paddingRight = textView.getPaddingRight();
this.paddingTop = textView.getPaddingTop();
this.paddingBottom = textView.getPaddingBottom();
this.textView = textView;
}
public TextView getTextView(){
textView.setPadding(paddingLeft,paddingTop,paddingRight,paddingBottom);
return textView;
}
}
in getView method
textView = ((ViewHolder) convertView.getTag()).getTextView();
java.lang.NullPointerException: Attempt to invoke virtual method 'void org.angmarch.views.NiceSpinner.attachDataSource(java.util.List)' on a null object reference
Hello,
I noticed the ListView onClick listener is not working on pre-Lollipop devices.
Checked on Internet, found this : http://stackoverflow.com/a/11244139/2743222
I replaced PopupWindow construction by this :
mPopup = new PopupWindow(mListView,
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, true);
Works like a charm 👍
Anthony.
The library is very nice.How can i add select one on this adapter.
I want to changge the NiceSpinner's border ,and i try to set the background with shape.xml ,but it didn't work!
<org.angmarch.views.NiceSpinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dialog"
android:id="@+id/nice_spinner"
android:layout_gravity="center"
android:background="@drawable/edittext_shape"
android:layout_marginRight="20dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
/>
Is this problem fixed? The use of the background property does not set the border and border style
How to confuse or need???
Whether can set the default hint
you can try it in RecyclerView,has some bugs
I am trying to use android:background="@drawable/box_edittext2" but it did not work and If I try to to put this in JAVA it repeat the background for each row ... is it possible to put adapter's row background different and NiceSpinner Background differnet
比如第一个spinner是省,第二个表示市,点击第一个省后第二个市的spinner箭头图标是朝上的。
默认的是first.setSelectedIndex(0);和sencond.setSelectedIndex(0);
Cardview became invisible in layout preview android studio. When i remove your library it works again.
Thanks in advance
This is a great widget. I've noticed that the default Spinner that comes with the design library is a bit confusing for users.
I have a suggestion: make the API of NiceSpinner
compatible with android.widget.Spinner
so that it acts as a so-called "drop-in replacement". This includes stuff like using setAdapter
instead of attachDataSource
and using setOnItemSelectedListener
instead of setOnItemClickListener
(the latter is not supported by Spinner
). This will make it much easier for devs to use NiceSpinner
(basically a search and replace will do).
i find it.
Hi,
Great project just like your name :). Sorry to trouble you for a moment. I met a problem when I set hideArrow="true"
in my xml files as the following seen:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<org.angmarch.views.NiceSpinner
android:id="@+id/test_nice_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
app:hideArrow="true" />
</LinearLayout>
When I clicked on this text view, my app crashed, see the following:
08-28 16:52:19.229 24907-24907/com.amap.mock E/MessageQueue-JNI﹕ java.lang.NullPointerException
at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505)
at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487)
at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517)
at android.animation.ValueAnimator.start(ValueAnimator.java:936)
at android.animation.ValueAnimator.start(ValueAnimator.java:946)
at android.animation.ObjectAnimator.start(ObjectAnimator.java:465)
at org.angmarch.views.NiceSpinner.animateArrow(NiceSpinner.java:256)
at org.angmarch.views.NiceSpinner.showDropDown(NiceSpinner.java:265)
at org.angmarch.views.NiceSpinner.onTouchEvent(NiceSpinner.java:242)
at android.view.View.dispatchTouchEvent(View.java:7714)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
at android.app.Activity.dispatchTouchEvent(Activity.java:2478)
at android.support.v7.internal.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
at android.view.View.dispatchPointerEvent(View.java:7894)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4034)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3913)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3474)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3524)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3493)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3600)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3501)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3657)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3474)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3524)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3493)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3501)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3474)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5619)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5599)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5570)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5699)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:138)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:5014)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:806)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeS
*It seems that you haven't initialised mDrawable
when hideArrow is set to true. *
it's use in normal activity all is well
and then
it's use in dialog crash at click
and it's the log
@arcadefire
I am having an issue with nice spinner. The text displayed inside the spinner is getting deformed in terms of formatting once the spinner arrow is clicked more than once. Kindly tell a work around.
i click the item found that the inner text of the item is center,can you help me?thank you
compile 'com.github.arcadefire:nice-spinner:1.2'无法成功添加到项目
<org.angmarch.views.NiceSpinner
android:id="@+id/spn_room"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="15dp"
/>
When this library is used, the constraint layout stops rendering.
in measureDisplayHeight method, Activity activity = (Activity)this.getContext(), this code is wrong ,as NiceSpinner extends AppCompatTextView,so context is wrapper by TintContextWrapper .
Hi Angelo,
It seems that the spinner triggers an Exception if the project uses the Appcompat library (com.android.support:appcompat-v7:23.0.0)
java.lang.ClassCastException: android.support.v7.widget.AppCompatSpinner cannot be cast to org.angmarch.views.NiceSpinner
java.lang.NullPointerException
at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505)
at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487)
at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517)
at android.animation.ValueAnimator.start(ValueAnimator.java:936)
at android.animation.ValueAnimator.start(ValueAnimator.java:946)
at android.animation.ObjectAnimator.start(ObjectAnimator.java:465)
at org.angmarch.views.NiceSpinner.animateArrow(Unknown Source)
at org.angmarch.views.NiceSpinner.showDropDown(Unknown Source)
at org.angmarch.views.NiceSpinner.onTouchEvent(Unknown Source)
at android.view.View.dispatchTouchEvent(View.java:7706)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2216)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1959)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2068)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1515)
at android.app.Activity.dispatchTouchEvent(Activity.java:2458)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2016)
at android.view.View.dispatchPointerEvent(View.java:7886)
mSpinner.setOnItemSelectedListener(new SimpleItemSelectedListener() {
@OverRide
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
playVideo();
}
});
Hi there,
While testing your project I found two bugs happening with Sony ST2i
running Android 4.0.4
(15
). The fist seems easy to solve it's a matter of color, the color of the selected spinner is not set gradually: you directly something grey like this:
The second issue is more critical, you cannot select a displayed value on this phone, the click do not respond...
Step to reproduce:
BTW: I created a project with a sample which compiles directly when you put it in Android Studio (I fixed some bugs of yours). If someone is interested: https://github.com/lolobosse/nice_spinner_demo
I can't understand the README.MD
Sent from my Xiaomi MI 4LTE using FastHub
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.