如何删除片段onFling手势Android

时间:2015-10-27 13:21:01

标签: android android-fragments

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手势。如何删除该片段?

1 个答案:

答案 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;
}