我正在尝试使用标签内的片段导航来构建包含许多标签的应用(如许多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;
}
前一个片段仍然会获得触摸事件,如何才使新片段获得触摸事件?
答案 0 :(得分:0)
您正在将片段注册为该事件的处理程序,因此,如果您希望它不能获取触摸事件,则必须取消注册。您可以在设置新帐户之前使用root.setOnTouchListener(null);
取消设置。
答案 1 :(得分:0)
我的代码正常运行,我只是犯了一个错误。
在新的片段列表视图适配器中,app将启动一个新的空片段。但我忘记了。