我对片段中的ButterKnife有一个问题。
例如,我有两个片段,第一个片段在视图的中间有一个按钮。我用以下命令绑定它:
unbinder = ButterKnife.bind(this, rootView); 然后实现了@BindView和@OnClick
@BindView(R.id.btnSignUp)
Button btnSignUp;
@OnClick(R.id.btnSignUp)
public void signUpClick() {关于SignUpClick当前片段替换为新片段:
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setAllowOptimization(true);
transaction.replace(R.id.frame_layout, fragment);
transaction.addToBackStack(String.valueOf(fragment.getClass()));
transaction.commit();第二个片段还包括屏幕顶部的一个按钮,并实现了BindView。
问题是-如果我点击屏幕中间的空白区域,signUpClick被触发,不确定我的错误在哪里,或者是ButterKnife错误
发布于 2017-02-08 15:23:12
这是因为片段被放在后台堆栈中。因此,如果第二个片段没有执行单击操作,则会将其传递给第一个片段。
您可能还应该添加click listener on second fragment按钮。
发布于 2017-02-08 16:50:04
只需在第二个片段的根目录中添加一个单击侦听器,但主体为空。假设R.id.root_fragment2是第二个片段的根布局的id。
@OnClick(R.id.root_fragment2)
public void onRootClicked() {
}现在,第二个片段将消耗点击,并且不会将其传递给下面的片段。
发布于 2017-02-08 16:50:04
第二个片段在屏幕的顶部,但当触发触摸事件时,如果第二个片段没有消费事件,第一个片段仍然可以接受触摸事件。片段有一个根视图,你可以这样设置视图: rootView.setClickable(true);
https://stackoverflow.com/questions/42106938
复制相似问题