Fragment Pagination - 取代Touch Handler

时间:2013-03-19 16:14:36

标签: android

我正在尝试使用标签内的片段导航来构建包含许多标签的应用(如许多iPhone应用)。我正在使用Support V4 lib。

所以框架是: TabActivity-> FragmentActivity->片段

在片段活动中,应用程序将调用此方法来替换新片段:

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

前一个片段仍然会获得触摸事件,如何才使新片段获得触摸事件?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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