Comments (11)
any idea?
from like_button.
why use Timer? it's just demo to do as we request service.
onTap: (isLiked) async {
await gen.addMusicsToFavorite();
final Completer<bool> completer =
new Completer<bool>();
Timer(
const Duration(milliseconds: 200),
() {
completer.complete(gen.music['is_favorite']);
return completer.future;
},
);
},
you need to know how to do it with async /await. i did't see any return from your code
from like_button.
I am new to this future topic , but what am I doing is below now is :
onTap: (_) => gen.addFavoriteMusics()
and addFavoriteMusics is
Future<bool> addFavoriteMusics() async {
try {
var resp = await Music().name('/favorite').favoritePost(
body: {'favorite': _music['is_favorite'] == true ? '0' : '1'},
id: _music['id'],
);
_music['is_favorite'] = !_music['is_favorite'];
//if it is done , do following with server
_favoriteMusics =
await Music().include(['album.artists']).favorite().$get();
notifyListeners();
return _music['is_favorite'];
} catch (e) {
return null;
}
}
it workes fine but it doesn't have any animation .
can you please help me that what is my problem ?
from like_button.
also I want optimistic updating effect , how can I implement that ?
from like_button.
Did you figure this out?
from like_button.
plz provide a runnable demo to show your issue。
from like_button.
Rough working code for reference for @mohammadne :
class _LikeButtonMainState extends State<LikeButtonMain> {
bool _isLiked = false;
@override
Widget build(BuildContext context) {
return LikeButton(
onTap: (bool isLiked) {
return _like(_isLiked).then((value) {
_isLiked = value;
return value;
});
},
circleColor: CircleColor(start: Color(0xff00ddff), end: Color(0xff0099cc)),
bubblesColor: BubblesColor(
dotPrimaryColor: Color(0xff33b5e5),
dotSecondaryColor: Color(0xff0099cc),
),
likeBuilder: (bool isLiked) {
return Icon(
Icons.favorite,
color: _isLiked ? Color(0xFFDF5757) : Colors.grey,
);
},
);
}
Future<bool> _like(isLiked) async {
isLiked = !isLiked;
return isLiked;
}
}
from like_button.
class _LikeButtonMainState extends State {
bool _isLiked = false;
@OverRide
Widget build(BuildContext context) {
return LikeButton(
onTap: (bool isLiked) {
return _like(isLiked);
},
circleColor: CircleColor(start: Color(0xff00ddff), end: Color(0xff0099cc)),
bubblesColor: BubblesColor(
dotPrimaryColor: Color(0xff33b5e5),
dotSecondaryColor: Color(0xff0099cc),
),
likeBuilder: (bool isLiked) {
return Icon(
Icons.favorite,
color: _isLiked ? Color(0xFFDF5757) : Colors.grey,
);
},
);
}
Future _like(isLiked) async {
isLiked = !isLiked;
return isLiked;
}
}
from like_button.
onTap is asynchronous call back
from like_button.
please double check codes in demo
from like_button.
Thanks alot.
from like_button.
Related Issues (20)
- Like ontap issue HOT 7
- Like Status resetting when scrolling away HOT 8
- Trigger on Tap without touch the icon HOT 2
- Not centered Icon when not using count HOT 1
- icon and text alignment HOT 1
- Only increment (add) button HOT 1
- Ontap working when build method called> HOT 1
- Can we start animation without onTap ? HOT 3
- onTap taking a long time to like HOT 1
- Enlarge clickable zone HOT 3
- Animate counting text on changed value HOT 2
- Animation doesn't work when using "isLiked" parameter on the widget HOT 3
- Disable input not possible HOT 1
- The package breaks when 2 requests are sent at a time HOT 4
- Use InkResponse instead of GestureDetector
- Count animation is not working when called from state. HOT 1
- 设置countPostion为bottom,count文本为0时,显示“赞”,点击按钮,更新后的count文本没有居中
- [Feature request] Cancel animation if tapped quickly
- [Discussions] HOT 1
- [Feature request] Support for pill shapes (wider buttons)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from like_button.