gpt4 book ai didi

android - Butterknife 在自定义 View 中绑定(bind)到 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:22:47 25 4
gpt4 key购买 nike

我有一个包含自定义 View 的 fragment 。

在 fragment 中,我像这样执行 ButterKnife.bind:

    View root = inflater.inflate(R.layout.fragment_home, container, false);
ButterKnife.bind(this, root);

我设法绑定(bind)了 View 。

现在,该 fragment 包含我创建的自定义 View 。在 MenuToggleButton 自定义 View 中,我想绑定(bind)另一个 View ,并对其进行操作。

我遇到的问题是,我不知道如何从自定义 View (位于 fragment 中)内部访问 fragment 的 Root View 。

public MenuToggleButton(Context context, AttributeSet attrs) {
super(context, attrs);
final Activity activity = (Activity) context;
ButterKnife.bind(this, // need to get the fragment root view somehow);
}

如何获取 fragment Root View 以便像在 fragment 中那样绑定(bind)它?

最佳答案

您必须在自定义 View 中使用 ViewHolder 才能在那里使用 ButterKnife。或者您可以通过 findViewById 以传统方式获取 View 。因此,使用 ButterKnife,您的自定义 View 将是这样的:

class MenuToggleButton{
public MenuToggleButton(Context context, AttributeSet attrs) {
super(context, attrs);
View v = inflate(context, R.layout.menu_toggle_button, this);
(new ViewHolder(v)).init();
}
class ViewHolder{
@BindView(R.id.some_view)
SomeView someView;

ViewHolder(View view) {
ButterKnife.bind(this, view);
}

init() {
someView.doSomething();
}

}

关于android - Butterknife 在自定义 View 中绑定(bind)到 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39559679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com