我有一个RecyclerView,它必须在ViewHolder中扩展以下布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.percent.PercentRelativeLayout
android:id="@+id/imageRelative"
....
....
<LinearLayout
android:id="@+id/premiumBlockerView"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:alpha="0.5"
android:background="@color/Black"
android:layout_alignBottom="@id/linearLayout1" />
</RelativeLayout>
RelativeLayout的内容发生了变化(图像,视频,文字等),所以我无法知道高度(宽度是设备的宽度)。
我必须添加一个视图(我的premiumBlockerView LinearLayout),我将显示为半透明玻璃或不依赖于内容类型。
问题是premiumBlockerView中的height = match_parent不起作用,它总是为零。因此,像其他帖子建议的那样,我添加了layout_alignParent和alignBottom参数,这个工作arround解决方案适用于大于20的API。
现在,应用程序必须适用于API 19,并且此工作arround不起作用。
你有什么建议吗?
感谢!!!
答案 0 :(得分:0)
我也面临同样的问题。很抱歉,我仍然无法在RelativeLayout中找到完美的解决方案,但您可以使用 ConstraintLayout 或其他布局而不是RelativeLayout来解决此问题。
注意:强> 如果您设置父RelativeLayout
机器人:layout_height = “WRAP_CONTENT” &GT;
和子视图
机器人:layout_height = “match_parent”
在RecylerView中。
然后子视图将
“WRAP_CONTENT”
而不是match_parent,您可以通过阅读RelativeLayout onMeasure方法的源代码找到原因。