0

我正在尝试使用标签内的片段导航构建一个具有许多标签的应用程序(如许多 iPhone 应用程序)。我正在使用支持 V4 库。

所以框架是:TabActivity->FragmentActivity->Fragments

在fragment Activity中,app会调用这个方法来替换一个新的fragment:

public void updateFragment(Fragment fragment) { 

    final FragmentTransaction transaction = fragmentManager
            .beginTransaction();
    transaction.replace(R.id.fragment_layout, fragment, nTag);
    transaction.addToBackStack(null);
    transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    transaction.commit();
}

...在新片段中,我还要求根视图处理 OnTouchEvent:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View root = inflater.inflate(R.layout.fragment_shopfilter, container,
            false);
    root.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return true;
        }
    });

    return root;
}

之前的fragment还是会获取到touch事件,如何让新的fragment只获取到touch事件呢?

4

2 回答 2

0

您将片段注册为该事件的处理程序,因此如果您希望它不获取触摸事件,则必须取消注册。您可以root.setOnTouchListener(null);在设置新设置之前取消设置。

于 2013-03-19T16:20:44.053 回答
0

我的代码正在运行,我只是犯了一个错误。

在新的片段列表视图适配器中,应用程序将启动一个新的空片段。但我忘记了。

于 2013-03-20T06:51:46.227 回答