android - Butterknife在自定义视图中绑定到片段

时间:2016-09-18 16:00:51

标签: android android-fragments android-view butterknife

我有一个包含自定义视图的片段。

片段中的

我像这样ButterKnife.bind

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

我设法绑定观点。

现在,片段包含我创建的自定义视图。 在MenuToggleButton自定义视图中,我想绑定另一个视图,并使用它进行操作。

我遇到的问题是,我不知道如何从自定义视图(位于片段中)中访问片段的根视图。

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);
    }

如何才能获得片段根视图以便像我在片段中那样绑定它?

1 个答案:

答案 0 :(得分:0)

您必须在自定义视图中使用ViewHolder才能在此处使用ButterKnife。或者,您可以通过findViewById以传统方式获取视图。 因此,使用ButterKnife,您的自定义视图将如下所示:

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();
        }

    }

}