Andorid Kotlin-如何向下转换合成视图导入

时间:2018-10-04 12:57:47

标签: android kotlin

让我告诉我我的xml文件是什么样子,以便您了解我需要做的事情。

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/iv"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    fresco:actualImageScaleType="none"
    fresco:placeholderImageScaleType="center"
    fresco:placeholderImage="@drawable/spinner"/>

</merge>

当我使用黄油刀时,我是这样导入此视图的:

 @BindView(R.id.iv)
    DraweeView iv; //this 

注意如何在黄油刀中将其分配给SimpleDraweeView的BASE CLASS。从来没有任何问题。

但是现在我已经将文件转换为kotlin并为其分配了iv,如下所示:

import kotlinx.android.synthetic.main.mylayout.view.iv

,然后当我检查iv的类类型而不是超类类型时,其类型为SimpleDraweeView。我希望它是DraweeView。我想这是可以预期的。但是我如何做到这一点,所以kotlin使用SimpleDraweeView的超类。

我尝试投射视图,但是当我使用它时,我总是不得不投射它。有没有办法像黄油刀一样?

1 个答案:

答案 0 :(得分:0)

不确定是否可以帮助您, https://github.com/JakeWharton/butterknife/issues/198

请参考它,否则我想您必须为超类创建新的变量