我正在尝试为我的列表项建立类似的布局,如上图所示。但是,我很困难,因为我不知道如何嵌套视图,因此销售按钮与文本视图具有相同的高度。
如果我使用RelativeLayout而不能再使用layout_weight属性,那么将视图均匀地水平放置在屏幕上。
但是,如果我使用LinearLayout而不能使用alignTop之类的相对属性等等。我试图以某种方式嵌套观点,所以我可以实现这一点,但是到目前为止我失败了...(因为我的英语技能很差)
这是我到目前为止所做的,但是我仍然无法得到理想的结果:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="80dp"
android:padding="16dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="45dp">
<TextView
android:id="@+id/productname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Google Pixel" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/productname"
tools:text="699$" />
<TextView
android:id="@+id/quantity_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
tools:text="Quantity" />
<TextView
android:id="@+id/quantity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/quantity_textview"
android:layout_centerHorizontal="true"
tools:text="31" />
</RelativeLayout>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:layout_alignParentRight="true"
tools:text="SELL"
android:layout_alignParentTop="true" />
</RelativeLayout>
答案 0 :(得分:2)
我建议ConstraintLayout。这将允许您将按钮的顶部设置为约束到第一个文本视图的顶部,将按钮的底部约束到第二个文本视图的底部,并使用水平从左到右保持均匀分布链
这是一个我刚刚拼凑在一起的例子:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="0dp"
android:text="TextView"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/textView4"
app:layout_constraintTop_toTopOf="@+id/textView4"
tools:text="Google Pixel" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="@+id/textView5"
app:layout_constraintLeft_toLeftOf="@+id/textView2"
app:layout_constraintRight_toRightOf="@+id/textView2"
tools:text="6995" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="TextView"
app:layout_constraintLeft_toRightOf="@+id/textView2"
app:layout_constraintRight_toLeftOf="@+id/button2"
app:layout_constraintTop_toTopOf="parent"
tools:text="Quantity" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="32dp"
android:text="TextView"
app:layout_constraintLeft_toLeftOf="@+id/textView4"
app:layout_constraintRight_toRightOf="@+id/textView4"
app:layout_constraintTop_toBottomOf="@+id/textView4"
tools:text="31" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:layout_marginRight="8dp"
android:layout_marginTop="0dp"
android:text="Button"
app:layout_constraintBottom_toBottomOf="@+id/textView5"
app:layout_constraintLeft_toRightOf="@+id/textView4"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@+id/textView4"
tools:text="Sell" />
</android.support.constraint.ConstraintLayout>
这会在预览中为您提供此布局:
这就是预览看起来像显示约束的内容。您可以看到按钮被约束到两个视图(虚线),以及跨越&#34; Google Pixel&#34;标签,&#34;数量&#34;标签,以及保持所有内容均匀分布的按钮。
请注意,如果您希望按钮缩小以缩小以匹配第二个文本视图的底部,则必须将按钮的minHeight属性设置为0.您可能还需要如果您想要顶部和底部的像素完美对齐,则替换按钮的默认背景,因为默认背景drawable具有一些内置填充。
希望有所帮助!
答案 1 :(得分:0)
尝试使用框架布局,您可以根据需要调整视图。 或者,您可以使用带有自定义适配器的listview来创建此类视图。你可以参考这个链接
http://www.androidhive.info/2012/02/android-custom-listview-with-image-and-text/