黄油刀绑定片段问题



我对碎片中的黄油刀有问题。

例如,我有 2 个片段,第一个片段在中间有一个按钮。我绑定它:

unbinder = ButterKnife.bind(this, rootView); 

然后我实现@BindView@OnClick

@BindView(R.id.btnSignUp)
Button btnSignUp;
@OnClick(R.id.btnSignUp)
public void signUpClick() {

注册时单击当前片段替换为新片段:

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setAllowOptimization(true);
transaction.replace(R.id.frame_layout, fragment);
transaction.addToBackStack(String.valueOf(fragment.getClass()));
transaction.commit();

第二个片段还包括屏幕顶部的一个按钮,带有 BindView 实现。

问题是 - 如果我在屏幕中间点击空白区域,注册点击触发,不确定我的错误在哪里或它是黄油刀错误

这是因为片段被放置在后堆中。因此,如果第二个片段不执行点击操作,则会将其传递给第一个片段。

您可能还应该在第二个片段按钮上添加单击侦听器。

只需将一个点击侦听器添加到第二个片段的根目录,正文为空。假设R.id.root_fragment2是第二个片段的根布局的 id。

@OnClick(R.id.root_fragment2)
public void onRootClicked() {
}

现在,第二个片段将消耗点击次数,并且不会将其传递给下面的片段。

第二个片段位于屏幕顶部,但是当发出触摸事件时,如果第二个片段不消耗该事件,第一个片段仍然可以接受触摸事件。片段有一个根视图,你可以这样设置视图:rootView.setClickable(true(;

最新更新