Hello all在我的应用程序中,我有一个活动,我可以在其中添加许多片段。片段由包含96x96缩略图的单个图像视图组成,它们以网格布局放置。我想要的是在检测到onFling手势时删除特定的片段。
这是我尝试的。我有
Parse.Cloud.define("addInvite", function(request, response) {
Parse.Cloud.useMasterKey();
var userID = request.params.user;
var groupID = request.params.group;
var user;
var group;
var userQuery = new Parse.Query(Parse.User);
userQuery.equalTo("objectId", userID);
userQuery.first().then(function(userRetrieved) {
user = userRetrieved;
var groupObject = Parse.Object.extend("Group");
var groupQuery = new Parse.Query(groupObject);
groupQuery.equalTo("objectId", groupID);
return groupQuery.first();
}).then( function(groupRetrieved) {
//group = groupRetrieved;
var relations = user.relation("invited");
relations.add(groupRetrieved);
return user.save();
}).then(function() {
response.success();
}, function(error) {
response.error(error.message);
});
});
如果我在手机上测试,我可以检测到Fling手势。如何删除该片段?
答案 0 :(得分:1)
如果你在后台堆上有你的片段,只需拨打finish()
即可。如果您没有将碎片放在靠背堆上,或者您只是想确定其有效,请使用:
首先,您需要添加field
来存储活动片段。在BlankFragment类中添加
public BlankFragment mBlankFragment;
在oncreateview
添加
mBlankFragment = this;
现在,您可以使用
在fling侦听器中使用此变量 getActivity().getFragmentManager().beginTransaction().remove(mBlankFragment).commit();
另一种方法是使用类似
的函数找出活动片段的内容public Fragment getVisibleFragment(){
FragmentManager fragmentManager = getActivity().getFragmentManager();
List<Fragment> fragments = fragmentManager.getFragments();
for(Fragment fragment : fragments){
if(fragment != null && fragment.isVisible())
return fragment;
}
return null;
}