2

大家好 =) 我是一名新的 android 开发人员,我需要关于解除片段的帮助。

我的应用程序有一个登录片段,当用户触摸它的外部时,我想隐藏登录片段。我怎么能做这个?OnTouchEvent() 方法是否有用?

请说点什么。谢谢 =)

4

3 回答 3

1

将登录布局放置在透明的全屏布局中,并在较大的布局上检测触摸事件。

于 2012-12-04T17:06:52.880 回答
0

我认为更好的方法是删除片段以释放内存资源。

我的解决方案是在片段中有这个方法:

private void closeFragment() {
        getActivity().getSupportFragmentManager().beginTransaction().remove(YOUR_FRAGMENT.this).commit();
    }
于 2013-06-03T03:13:52.810 回答
0

再次嗨 =) 我在我的主页活动中使用 OnTouchListener 解决了这个问题。我的主页布局中有一个 gridviews 背景,如果用户没有登录,onTouch()方法运行。当登录片段可见并且用户触摸它之外我hideLoginFragment() 方法调用解除片段..

gridView = (ShelvesView) findViewById(R.id.grid_shelves);
gridView.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                        if (application.getDbManager().getUser().key.equals("-1")){
                    hideLoginFragment();
                    loginButton.setVisibility(View.VISIBLE);
                    exitButton.setVisibility(View.INVISIBLE);}
                return false;
            }
        });
于 2012-12-05T10:54:23.670 回答