whilu / androidtagview Goto Github PK
View Code? Open in Web Editor NEWA TagView library for Android. Customize your own & Drag effect.
A TagView library for Android. Customize your own & Drag effect.
I use this library in items of recyclerview and set onClickListener to each of tags :
`mTagContainerLayout.setOnTagClickListener(new TagView.OnTagClickListener() {
@Override
public void onTagClick(int position, String text) {
}
@Override
public void onTagLongClick(final int position, String text) {
}
});`
My recyclerview items are cardViews and I set onClickListener to their cardview too.
My problem is sometimes when I click on tags, nothing happens and sometimes my code in onclickListener works! why?
在没有设置.setIsTagViewClickable(true)时,点击一个Tag仍然有点击动画,感觉这是对用户的误导。
使用场景:在listview的每个item里显示tagview,可以正常显示。点击tagview时不会调用setOnTagClickListener这个方法。请问怎么解决。
I wonder if we can set selected state when we click on a TagView. Or at least, should we have getTagView(int position)
method in the TagContainerLayout
and an attrs
to set TagView
's background?
is there a way to adding a layout mode
let me know if u want make such edits. many thanks
1 android.view.GLES20Canvas.clipPath(GLES20Canvas.java:424)
2 co.lujun.androidtagview.TagView.void drawRipple(android.graphics.Canvas)(SourceFile:329)
3 co.lujun.androidtagview.TagView.void onDraw(android.graphics.Canvas)(SourceFile:189)
4 android.view.View.draw(View.java:10988)
5 android.view.View.getDisplayList(View.java:10427)
6 android.view.ViewGroup.drawChild(ViewGroup.java:2850)
7 android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
8 android.view.View.draw(View.java:10991)
9 android.view.View.getDisplayList(View.java:10427)
10 android.view.ViewGroup.drawChild(ViewGroup.java:2850)
11 android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
12 android.view.View.getDisplayList(View.java:10425)
13 android.view.ViewGroup.drawChild(ViewGroup.java:2850)
14 android.support.v7.widget.RecyclerView.drawChild(SourceFile:3838)
15 android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
way one:
app:tag_text_color="@color/primary_blue"
app:tag_border_color="@color/primary_blue"
app:tag_background_color="@color/list_bg"
way two:
serchFgTagView.setTagBorderColor(getResources().getColor(R.color.primary_blue));
serchFgTagView.setTagBackgroundColor(getResources().getColor(R.color.primary_blue));
serchFgTagView.setTagTextColor(getResources().getColor(R.color.primary_blue));
These things that i used is not work, why?
I want to set different drawable/color to a specific tag on onClick on that tag. Pls suggest me the way to do so.
Below is my code:
xml:
app:container_border_color="@android:color/transparent"
app:container_background_color="@android:color/transparent"
app:tag_background_color="@android:color/transparent"
app:tag_border_color="@color/deep_rose_two"
app:container_enable_drag="false"
app:horizontal_interval="10dp"
app:tag_clickable="true"
app:tag_text_color="@color/black"
app:tag_text_size="12sp"
app:tag_theme="none"
app:vertical_interval="10dp"
Code:
for (int i = 0; i < 10; i++) {
tags.add("Tag " + (i + 1));
}
List<int[]> colors = new ArrayList<int[]>();
tagContainer.setTags(tags, colors);
tagContainer.setOnTagClickListener(new TagView.OnTagClickListener() {
@Override
public void onTagClick(int position, String text) {
Log.d(TAG, "onTagClick: position: "+position+", text: "+text);
tagContainer.setTagBackgroundColor(getResources().getColor(R.color.deep_rose_two));
tagContainer.setTagTextColor(getResources().getColor(R.color.white));
}
@Override
public void onTagLongClick(final int position, String text) {
}
@Override
public void onTagCrossClick(int position) {
}
});
I'm using your TagContainerLayout
in the item of RecyclerView
. I observed that the width of TagContainerLayout will always fill parent, it caused my trigger of item's onclick listener be overlapped.
I had tried to set layout_width="wrap_content" and set onclick listener to TagContainerLayout, both failed.
现在设置的theme应该是针对于整个TagContainerLayout的,可以针对其中的某个TagView,或者某个位置的tagView设置背景色等属性么?
我把 TagContainerLayout 放在了ListView的Item布局里面,也已经设置了app:tag_clickable="false",但是如果点击事件在TagContainerLayout上,不会触发ListView的OnItemClick事件,求教作者该如何做处理 谢谢
java.lang.NullPointerException: Attempt to invoke virtual method 'int co.lujun.androidtagview.TagContainerLayout.getTagViewState()' on a null object reference
at co.lujun.androidtagview.TagView$1.run(TagView.java:115)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
Hi sir, how i can retrieve array list (string ) from tags??
I want ripple effect on each tag when user click on it. How can I do that?
When enabling RTL layout, the arabic letters are splitted
三星手机不能点击
I cannot find a way to change the properties of tag on clicking it.
Hi, I used your lib in my project, but I could not find getTags() in your code.
Thanks
我们的项目使用的是23.4.0的版本,升级到1.1.0后报错,需要升级Support包。
可不可以兼容一下版本
I would recommend using dp for the default values of tag_horizontal_padding, tag_vertical_padding and tag_bd_distance.
1.06版好像和FloatingActionButton的resource有冲突,改成1.06版就无法编译通过,1.05可以,怀疑colorAccent是不是重名了?
<co.lujun.androidtagview.TagContainerLayout
android:id="@+id/tag_history"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_18"
app:container_background_color="@color/white"
app:container_border_color="@color/white"
app:tag_border_color="@color/grey_7f7f7f"
app:tag_background_color="@color/white"
app:tag_text_color="@color/grey_7f7f7f"
app:tag_theme="none"
app:tag_clickable="true"
app:horizontal_interval="@dimen/dp_8"
app:tag_horizontal_padding="@dimen/dp_6"
app:tag_vertical_padding="@dimen/dp_5"
app:tag_corner_radius="@dimen/dp_2" />
When I delete a tag and immediately click on the tagContainerLayout which was holding that tag then the app crash with the above error. I am posting my full stack trace hope it will help in resolving the issue.
Full error stack trace :
12-02 14:08:26.341 21385-21385/com.demo.app E/InputEventReceiver: Exception dispatching input event. 12-02 14:08:26.343 21385-21385/com.demo.app E/UncaughtException: java.lang.NullPointerException: Attempt to invoke interface method 'void android.view.ViewParent.requestDisallowInterceptTouchEvent(boolean)' on a null object reference at co.lujun.androidtagview.b.dispatchTouchEvent(SourceFile:228) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2553) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254) at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737) at android.app.Activity.dispatchTouchEvent(Activity.java:2771) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:63) at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:63) at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364) at android.view.View.dispatchPointerEvent(View.java:9520) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4230) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4096) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3787) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3844) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3695) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3661) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3669) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3642) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5922) at ``android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5896)
container_max_lines function is not updated in library. i checked it twice. please update the library.
Revision Number @be87be7
bug描述:
TagContainerLayout
同时设置为可拖动,可点击,长按后,在不先拖动子View
的前期下,长按子View
,子View
并不能响应long click
,子View
后,即可正常响应长按bug分析:
TagContainerLayout
时调用了setDragState()
setDragState()
中,当mDragEnable
设置为true
时(即可拖动),mTagViewState
被设置为- ViewDragHelper.STATE_DRAGGING
long click
的runnable
中,mTagViewState
需要等于STATE_IDLE
才能触发长按处理。所以在在不先拖动子View
的前期下long click
无响应mTagViewState
会被DragHelperCallBack.onViewDragStateChanged()
正常设置状态,所以才可响应long click
bug修复建议:
setDragState()
是否可删除?或者只是起到重置mTagViewState=ViewDragHelper.STATE_IDLE
作用,这样可修复setDragState()
目前两处被调用的上下文分析得出:
TagContainerLayout
初始化时 :不调用setDragState()
,按mTagViewState
的初始值ViewDragHelper.STATE_IDLE
setDragEnable()
中:不调用setDragState()
,mTagViewState
的值完全由DragHelperCallBack.onViewDragStateChanged()
控制,这样比较清晰text of tag are get reverce and lenth of text are limited. what if there long name of tag?
want to change container_background_color run time programming used tagView.setBackgroundColor();
but cant change the color. any diffrent way to change dynamic color for this?
中文好像没有居中,而且文字的tag_vertical_padding效果好像不对,我写了一个textview,设置一个shape,这样看起来才是符合预期的效果。
我是这样设置的:
<co.lujun.androidtagview.TagContainerLayout
android:layout_marginTop="16dp"
android:id="@+id/tagcontainerLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
app:container_border_width="0dp"
app:container_border_radius="0dp"
app:container_border_color="#ffffff"
app:container_background_color="#ffffff"
app:container_enable_drag="false"
app:horizontal_interval="12dp"
app:vertical_interval="12dp"
app:tag_clickable="true"
app:tag_theme="none"
app:tag_border_width="1dp"
app:tag_corner_radius="50dp"
app:tag_horizontal_padding="16dp"
app:tag_vertical_padding="5dp"
app:tag_text_size="14dp"
app:tag_text_color="#3ea2ef"
app:tag_border_color="#3ea2ef"
app:tag_background_color="#ffffff"
/>
<TextView
android:layout_margin="20dp"
android:gravity="center"
android:textSize="14sp"
android:textColor="#3ea2ef"
android:text="平面设计"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:background="@drawable/shape_re"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffff"/>
<stroke android:color="#3ea2ef"
android:width="1dp"/>
<corners android:radius="50dp"/>
</shape>
java.lang.NullPointerException: Attempt to invoke virtual method 'int co.lujun.androidtagview.TagContainerLayout.getTagViewState()' on a null object reference
at co.lujun.androidtagview.TagView$1.run(TagView.java:120)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5910)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
All the provided methods are not working for changing the tag text color.
i tried using
mTagContainerLayout.setTagBorderColor(Color.WHITE);
mTagContainerLayout.setTagTextColor(Color.WHITE);
mTagContainerLayout.setTagBackgroundColor(Color.TRANSPARENT);
even i tried changing the default values.
/** TagView border color(default #88F44336)*/
private int mTagBorderColor = Color.WHITE;
/** TagView background color(default #33F44336)*/
private int mTagBackgroundColor = Color.TRANSPARENT;
/** TagView text color(default #FF666666)*/
private int mTagTextColor = Color.WHITE;
i am still getting the default background color for every tag.
Thanks!
In some of the android devices i am getting this error.
ava.lang.ArrayIndexOutOfBoundsException: length=1; index=1\n\tat android.support.v4.widget.ViewDragHelper.saveLastMotion(ViewDragHelper.java:849)\n\tat android.support.v4.widget.ViewDragHelper.shouldInterceptTouchEvent(ViewDragHelper.java:1057)\n\tat com.skcsllp.mutterfly.widgets.TagContainerLayout.onInterceptTouchEvent(TagContainerLayout.java:311)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2366)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.widget.ScrollView.dispatchTouchEvent(ScrollView.java:645)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2839)\n\tat android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2514)\n\tat com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2831)\n\tat com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1863)\n\tat android.app.Activity.dispatchTouchEvent(Activity.java:3046)\n\tat android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)\n\tat android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:60)\n\tat com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2792)\n\tat android.view.View.dispatchPointerEvent(View.java:10228)\n\tat android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5344)\n\tat android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5180)\n\tat android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4620)\n\tat android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4673)\n\tat android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4639)\n\tat android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4781)\n\tat android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4647)\n\tat android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4838)\n\tat android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4620)\n\tat android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4673)\n\tat android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4639)\n\tat android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4647)\n\tat android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4620)\n\tat android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7306)\n\tat android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7184)\n\tat android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7145)\n\tat android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7416)\n\tat android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)\n\tat android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)\n\tat android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)\n\tat android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7380)\n\tat android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7443)\n\tat android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)\n\tat android.view.Choreographer.doCallbacks(Choreographer.java:695)\n\tat android.view.Choreographer.doFrame(Choreographer.java:625)\n\tat android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)\n\tat android.os.Handler.handleCallback(Handler.java:739)\n\tat android.os.Handler.dispatchMessage(Handler.java:95)\n\tat android.os.Looper.loop(Looper.java:158)\n\tat android.app.ActivityThread.main(ActivityThread.java:7229)\n\tat java.lang.reflect.Method.invoke(Native Method)\n\tat com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)\n\tat com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)\n
I am clueless why is this happening.
BRAND : SAMSUNG
MODEL : SM-G920I
ANDROID_VERSION : 6.0.1
Tag's top padding is different to bottom padding.
Bottom padding is less than top.
Sincerely.
Hello and thank you for your great work.
I have seen that the cross button (remove tag) is listening for on press instead of on release and I believe that it could create issues for users like for example, if the user is trying to hover over the view to be able to scroll and there is no dialog to confirm the removal (yes/no) attached to the cross button, the tag will get removed instantly.
Thanks.
View popularChannelHeaderView = getLayoutInflater().inflate(R.layout.view_search_channel_header, null, false);
mTagView = (TagContainerLayout) popularChannelHeaderView.findViewWithTag(R.id.vg_tag);
I am getting null, any idea?
##Hi ,sir can you add a small button (x) near of each tag to be easy when the user want to delete it ?thanks again
I set the tag max length to 255. When I enter tag text that gets around 100, the tag is created as expected but the text is all on a single line. I would have expected it to wrap to the next line in the tag bubble. Is there a way to accomplish this?
Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layout to choose a different layout, or fix the theme style references.
Failed to find style 'tickMarkTintMode' in current theme (3 similar errors not shown)
Hello I would like to put my tag on one line and if it goes beyond the maximum edge of the display, scroll through the tags in a horizzontalscollview you can do this? Now only works with a vertical ScrollView as examples
假设一行 TAG 只有三个没有超过屏幕宽。能否添加个开关让开关居中?
我在demo中没看到设置的啊
I call child view of index 2 the index-2 child for short.
so when I drag index-3 child over index-2 child, the index-3 is on top of index-2 child which is what i expect, but when I drag index-3 child over index-4 child, unexpectedly, the index-4 child is on the top.
Is it a bug or there is something I don't notice? wait for your answer
Sincerely.
您好,我在使用过程中,发现TagContainerLayout在ScrollView中工作的不是很好, 假设 TagContainerLayout 外层包裹了一层Layout,Layout可以点击。理想情况是TagContainerLayout不应该处理任何Touch事件,它也工作的很好,但现在出现了两种情况:
1、点到了TagView,外层的Layout会回调onClick ,但此时滑动手指,滑动事件失效。
2、于是将TagView的dispatchTouchEvent修改,直接返回true。点击TagView,Layout收不到onClick回调,但滑动事件有效。
TagView影响了其它控件的行为,无论dispatchTouchEvent怎么返回,要么不能点击,要么不能滑动,我暂时找不到解决的办法。
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.