我的布局有两个CardView
,看起来像这样:
我想要正确的卡片固定宽度(90dp),左边的卡片要自动调整大小并填充剩余的空间。我目前这样做了:
<RelativeLayout
android:id="@+id/inventory_host_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true">
<android.support.v7.widget.CardView
android:id="@+id/inventory_last_scanned_wrapper_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:layout_toLeftOf="@+id/inventory_scanned_infobox_wrapper_card">
...
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/inventory_scanned_infobox_wrapper_card"
android:layout_width="90dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="false"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="false"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp">
...
</android.support.v7.widget.CardView>
</RelativeLayout>
左边的一个可以长大,所以我也希望正确的卡片始终与左边的卡片保持相同的高度。通常我会通过将layout_alignTop
和layout_alignBottom
属性设置为其他View
来进行这种对齐,但这次这些属性不可用,可能是因为这会创建循环引用(尽管我不喜欢我真的不明白水平对齐如何影响垂直对齐。该怎么办?我已经探索了其他几个选项但总是回到相同的点,除了硬编码高度或以编程方式设置它们当然我想避免。
答案 0 :(得分:1)
您在哪里以及为什么会收到循环引用错误?只需设置
android:layout_alignBottom="@id/inventory_last_scanned_wrapper_card"
在右侧的卡片上,一切都应该有效。