将Anko视图的高度和宽度设置为match_parent

时间:2017-06-13 09:23:54

标签: android layout kotlin anko

我想将视频视图的高度和宽度设置为match_parent。我的代码看起来如下所示。它在没有heightwidth属性的情况下工作,但如下所示,我会发现val cannot be reassigned错误。

class VideoActivityUI : AnkoComponent<VideoActivity> {
    companion object {
        val ID_VIDEO = 11
    }

    override fun createView(ui: AnkoContext<VideoActivity>) = with(ui) {
        videoView{
            id = ID_VIDEO
            height = matchParent
            width = matchParent
        }
    }
}

1 个答案:

答案 0 :(得分:4)

您必须使用lparams来设置布局参数,如果您愿意,可以省略显式参数名称:

videoView {
    id = ID_VIDEO
}.lparams (width = matchParent, height = matchParent)

或者,你可以这样做:

videoView {
    id = ID_VIDEO
}.lparams {
    height = matchParent
    width = matchParent
}

可以找到Anko的相关维基部分here

请注意,您必须在ViewGroup周围VideoView作为Activity布局的根,才能获得布局参数,因为它取决于不同的布局参数是在FrameLayoutLinearLayout还是RelativeLayout

例如,使用简单的frameLayout,您的代码将如下所示:

override fun createView(ui: AnkoContext<VideoActivity>) = with(ui) {
    frameLayout {
        videoView {
            id = ID_VIDEO
        }.lparams(matchParent, matchParent)
    }
}