如何在AndroidX中实现Butterknife.Action?

时间:2019-06-25 12:47:02

标签: androidx butterknife

我无法在Andoidx中使用ButterKnife.Action,有人可以对如何在androidx中使用ButterKnife.Action提出任何建议吗?

classpath'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'

实现'com.jakewharton:butterknife:10.0.0' subscriptionProcessor'com.jakewharton:butterknife-compiler:10.0.0'

3 个答案:

答案 0 :(得分:0)

我使用了最新版本的ButterKnife(10.2.1)。 请按照下列步骤操作,问题将得到解决。

//第1步:导入此行

import butterknife.Action;

//第2步:在作用域类中

butterknife.Action viewAction = new Action() 
{

     @Override public void apply(@NonNull View view, int index) 
    {
    // do something.
    }

};

//第3步:不推荐使用新版本的ButterKnife.apply()。替换为:

 butterknife.ViewCollections.run(listView , viewAction );

答案 1 :(得分:0)

如果您迁移到AndroidX,则必须使用:

在gradle中

依赖性{

实现“ com.jakewharton:butterknife:10.2.0”

annotationProcessor“ com.jakewharton:butterknife-compiler:10.2.0”

...}

在课堂上遇到错误

如果您使用这样的代码:

  • ButterKnife.apply(new View [] {ivImageId,vgSubscribtionsId,vgSubscribersID},

                (view, value, index) -> view.setVisibility(value), View.INVISIBLE);
    

替换为可用于AndroidX:

  • butterknife.Action viewAction =(view,index)-> {

            view.setVisibility(View.INVISIBLE);
    
        };
        butterknife.ViewCollections.run(new View[]{ ivImageId,vgSubscribtionsId,vgSubscribersID} , viewAction );
    

答案 2 :(得分:-1)

对于androidX,您应该使用

import butterknife.ButterKnife;

然后执行类似新的butterknife.Action<View>()

包裹名称现在为butterknife,带有'b',而如果以前是'B'

我希望这会有所帮助...