自定义视图布局线覆盖 API 16 中的其他元素

Posted

技术标签:

【中文标题】自定义视图布局线覆盖 API 16 中的其他元素【英文标题】:Custom view layout line overstriking other elements in API 16 【发布时间】:2016-12-25 22:56:05 【问题描述】:

问题:

我需要什么:

在 API 23 上一切正常,但在 API 16 中,我在模拟器中运行它时遇到了这个问题。 android Studio 还会在设备屏幕上显示正确的布局。

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:cardview="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    cardview:cardCornerRadius="2dp"
    cardview:cardElevation="4dp"
    style="@style/AppTheme"
    cardview:cardUseCompatPadding="true">

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_margin="3dp"
        android:orientation="horizontal">

        <RelativeLayout
            android:layout_
            android:layout_
            android:layout_margin="8dp">

            <TextView
                android:id="@+id/tv_compra_header_titulo"
                android:layout_
                android:layout_
                android:layout_marginLeft="8dp"
                android:layout_marginTop="4dp"
                android:text="ETAPA"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/iv_compra_one"
                android:layout_
                android:layout_
                android:background="@drawable/ic_looks_one_black_24dp"

                android:backgroundTint="@android:color/tab_indicator_text" />

            <View
                android:id="@+id/view_compra_header_one"
                android:layout_
                android:layout_
                android:layout_alignParentEnd="false"
                android:layout_alignParentStart="false"
                android:layout_centerVertical="true"
                android:background="@color/secondaryText"
                android:layout_toEndOf="@+id/iv_compra_one"
                android:layout_toStartOf="@+id/iv_compra_two" />

            <ImageView
                android:id="@+id/iv_compra_two"
                android:layout_
                android:layout_
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_gravity="center"
                android:background="@drawable/ic_looks_two_black_24dp"
                android:backgroundTint="@android:color/tab_indicator_text" />

            <View
                android:id="@+id/view_compra_header_two"
                android:layout_
                android:layout_
                android:layout_alignParentEnd="false"
                android:layout_alignParentStart="false"
                android:layout_centerVertical="true"
                android:background="@color/secondaryText"
                android:layout_toStartOf="@+id/iv_compra_three"
                android:layout_toEndOf="@+id/iv_compra_two" />


            <ImageView
                android:id="@+id/iv_compra_three"
                android:layout_
                android:layout_
                android:layout_alignParentEnd="false"
                android:layout_alignParentRight="true"
                android:layout_alignParentTop="true"
                android:background="@drawable/ic_looks_3_black_24dp"
                android:backgroundTint="@android:color/tab_indicator_text" />
        </RelativeLayout>
    </LinearLayout>
</android.support.v7.widget.CardView>

【问题讨论】:

【参考方案1】:

请注意,Android API 级别 16 不支持 API 级别 17 中引入的 startend 属性。因此,这些属性将被忽略。

只需添加等效的 leftright 属性即可使布局在 API 级别 16 及以下级别上工作。

【讨论】:

很高兴我能帮上忙 ;)

以上是关于自定义视图布局线覆盖 API 16 中的其他元素的主要内容,如果未能解决你的问题,请参考以下文章

自定义 Android 视图在线性和相对布局中显示不同

线性布局内的Android自定义视图与其他视图

findViewById() 为布局 XML 中的自定义组件返回 null,而不是其他组件

自定义 UICollectionView 布局中列中的单元格对

调整自定义视图的报告大小以包括绘制的图形

带有子元素的 Android 自定义可展开/可折叠视图