我从Flutter开始,无法使用拖放功能。我遵循了文档,但不知道我在做什么错。 此示例应用程序显示三个正方形,蓝色可拖动。其他的则设置了DragTarget,一个在正方形内,另一个在正方形外。当我拖动蓝色方块时,它会打印开始拖动的信息,但是在DragTargets上拖放时没有打印信息。 这是代码:
# Used to get the movie names from the webpage
# If the page loads as you scroll down you would need to loop through this code
movie_list = []
movie_names = browser.find_elements_by_xpath('//*[@id="reactApp"]/div/div/div/div/div[3]/div[2]/div/div/div/div/div[1]/div/a/div/div[1]/span/div/img')
for name in movie_names:
# Add movie name to list
movie = name.get_attribute('alt')
movie_list.append(movie)
答案 0 :(得分:7)
显然,如果要传递数据,则Draggable和DragTarget必须具有指定的通用类型,否则将不会触发onAccept和onWillAccept。
例如,如果要将数据作为int传递,则使用Draggable<int>
和DragTarget<int>
-这也适用于onAccept和onWillAccept,它们需要接受int作为参数。
答案 1 :(得分:0)
调用onAccept时应设置state,并将一个布尔值添加到有状态的小部件中。
接受布尔=假;
onAccept: (data){
if(data=='d'){
setState(() {
accepted = true;
});
},