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

Setting height and width of an Anko view to match_parent

我想将视频视图的高度和宽度设置为 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
        }
    }
}

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

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

或者,您可以这样做:

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

可以找到 Anko 的相关 wiki 部分 here


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

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

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