PercentFrameLayout:您必须提供 layout_width 属性

PercentFrameLayout: You must supply a layout_width attribute

我尝试使用 PercentFrameLayout 但我收到此错误消息:

Binary XML file line #: You must supply a layout_width attribute.

这是我使用的xml:

<android.support.percent.PercentFrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        app:layout_heightPercent="50%"
        app:layout_marginLeftPercent="25%"
        app:layout_marginTopPercent="25%"
        app:layout_widthPercent="50%"/>
</android.support.percent.PercentFrameLayout>

这是一个错误还是我的错误?

由于 XML 布局规范,layout_widthlayout_height 属性仍然是必需的,但在 PercentFrameLayoutPercentRelativeLayout 中实际上被忽略了。

您只需将值设置为 0dpwrap_content:

<ImageView
    android:layout_height="0dp"
    android:layout_width="0dp"
    app:layout_heightPercent="50%"
    app:layout_marginLeftPercent="25%"
    app:layout_marginTopPercent="25%"
    app:layout_widthPercent="50%" />

这类似于标准 LinearLayoutlayout_weight 的用法,您还必须指定 layout_width