首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ButterKnife绑定片段问题

ButterKnife绑定片段问题
EN

Stack Overflow用户
提问于 2017-02-08 15:18:18
回答 3查看 511关注 0票数 0

我对片段中的ButterKnife有一个问题。

例如,我有两个片段,第一个片段在视图的中间有一个按钮。我用以下命令绑定它:

代码语言:javascript
复制
unbinder = ButterKnife.bind(this, rootView); 

然后实现了@BindView@OnClick

代码语言:javascript
复制
@BindView(R.id.btnSignUp)
Button btnSignUp;

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

关于SignUpClick当前片段替换为新片段:

代码语言:javascript
复制
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错误

EN

回答 3

Stack Overflow用户

发布于 2017-02-08 15:23:12

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

您可能还应该添加click listener on second fragment按钮。

票数 0
EN

Stack Overflow用户

发布于 2017-02-08 16:50:04

只需在第二个片段的根目录中添加一个单击侦听器,但主体为空。假设R.id.root_fragment2是第二个片段的根布局的id。

代码语言:javascript
复制
@OnClick(R.id.root_fragment2)
public void onRootClicked() {
}

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

票数 0
EN

Stack Overflow用户

发布于 2017-02-08 16:50:04

第二个片段在屏幕的顶部,但当触发触摸事件时,如果第二个片段没有消费事件,第一个片段仍然可以接受触摸事件。片段有一个根视图,你可以这样设置视图: rootView.setClickable(true);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42106938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档