与布局相关的问题

Issues related to Layout

我的布局有问题。

我想要这样的布局。 其中折扣百分比显示在交易价格和实际价格的中心。这该怎么做。我的实际价格相对布局占用了很多 space 即使我将我的相对布局设置为包装内容。并且在中心添加折扣百分比后,我的实际价格布局略低于此。它不等于交易价格。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/Parent.XML">

    <androidx.cardview.widget.CardView style="@style/CardView.Parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">


                <LinearLayout style="@style/CardView.TitleDescription">

                    <LinearLayout
                        style="@style/CardView.LinearLayoutParent"
                        android:layout_width="match_parent">


                        <TextView
                            android:id="@+id/just_in_store_name"
                            style="@style/Title.ItemRow" />

                        <TextView
                            android:id="@+id/just_in_deal_description"
                            style="@style/Description.ItemRow"
                            android:layout_height="30dp" />


                    </LinearLayout>

                </LinearLayout>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="#f2f2f2" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_marginRight="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/ap"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="6dp"
                            android:fontFamily="@font/calibri"
                            android:text="Deal Price"
                            android:textColor="#757575"
                            android:textSize="16sp" />

                        <TextView
                            android:id="@+id/just_in_deal_price"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/ap"
                            android:fontFamily="@font/calibri"
                            android:text="Deal Price"
                            android:textColor="#3691ea"
                            android:textSize="16sp" />

                    </RelativeLayout>

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:gravity="center_horizontal"
                        android:layout_marginRight="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/apv_discount"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="10% OFF"
                            android:textAlignment="center"
                            android:textColor="@color/colorPrimary"
                            android:textSize="18dp"
                            android:textStyle="bold"
                            android:visibility="visible" />

                    </RelativeLayout>

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="4dp"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/dp"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_marginBottom="6dp"
                            android:fontFamily="@font/calibri"
                            android:text="Actual Price"
                            android:textColor="#757575"
                            android:textSize="16sp" />

                        <TextView
                            android:id="@+id/just_in_actual_price"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/dp"
                            android:layout_alignParentRight="true"
                            android:fontFamily="@font/calibri"
                            android:text="Actual Price"
                            android:textColor="#3691ea"
                            android:textSize="16sp" />

                    </RelativeLayout>

                </LinearLayout>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="#f2f2f2" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">


                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="72"
                        android:orientation="vertical">

                        <TextView
                            style="@style/SubHeader.ItemRow"
                            android:layout_gravity="center"
                            android:text="Coupon Code" />

                        <TextView
                            android:id="@+id/coupon_code"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:fontFamily="@font/calibri"
                            android:gravity="center"
                            android:text="Not Required"
                            android:textAlignment="center"
                            android:textAllCaps="true"
                            android:textColor="#308fe9"
                            android:textSize="20sp" />
                    </LinearLayout>
                </LinearLayout>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="#f2f2f2" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="72"
                        android:orientation="vertical">

                        <Button
                            android:id="@+id/just_in_target"
                            style="@style/Button.Appearance"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="GET DEAL" />

                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </RelativeLayout>
    </androidx.cardview.widget.CardView>
</LinearLayout>

我想在这里提出一个带有权重属性的 LinearLayout,这样 [DEAL PRICE - DISCOUNT - ACTUAL PRICE] 中的每个元素在布局中都采用相同的 space,这就是据我所知,你想要的。

我准备了一个和你类似的布局。我删除了您用来避免错误的样式(因为我没有)。我还使用了支持库中的 CardView。请查看以下布局,让我知道这是否符合您的目的。这只是为了让您了解权重属性如何满足您的目的。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <android.support.v7.widget.CardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content">


                        <TextView
                            android:id="@+id/just_in_store_name"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content" />

                        <TextView
                            android:id="@+id/just_in_deal_description"
                            android:layout_width="wrap_content"
                            android:layout_height="30dp" />
                    </LinearLayout>

                </LinearLayout>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="#f2f2f2" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:weightSum="3">

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="match_parent"
                        android:layout_weight="1"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/ap"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="6dp"
                            android:text="Deal Price"
                            android:textColor="#757575"
                            android:textSize="16sp" />

                        <TextView
                            android:id="@+id/just_in_deal_price"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/ap"
                            android:text="Deal Price"
                            android:textColor="#3691ea"
                            android:textSize="16sp" />

                    </LinearLayout>

                    <TextView
                        android:id="@+id/apv_discount"
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="1"
                        android:text="10% OFF"
                        android:textAlignment="center"
                        android:textColor="@color/colorPrimary"
                        android:textSize="18dp"
                        android:textStyle="bold"
                        android:visibility="visible" />

                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:orientation="vertical">

                        <TextView
                            android:id="@+id/dp"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentRight="true"
                            android:layout_marginBottom="6dp"
                            android:text="Actual Price"
                            android:textColor="#757575"
                            android:textSize="16sp" />

                        <TextView
                            android:id="@+id/just_in_actual_price"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_below="@+id/dp"
                            android:layout_alignParentRight="true"
                            android:text="Actual Price"
                            android:textColor="#3691ea"
                            android:textSize="16sp" />

                    </LinearLayout>

                </LinearLayout>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="#f2f2f2" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">


                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="72"
                        android:orientation="vertical">


                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:text="Coupon Code" />

                        <TextView
                            android:id="@+id/coupon_code"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginBottom="4dp"
                            android:gravity="center"
                            android:text="Not Required"
                            android:textAlignment="center"
                            android:textAllCaps="true"
                            android:textColor="#308fe9"
                            android:textSize="20sp" />
                    </LinearLayout>
                </LinearLayout>

                <View
                    android:layout_width="match_parent"
                    android:layout_height="2dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginBottom="8dp"
                    android:background="#f2f2f2" />

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal">


                    <LinearLayout
                        android:layout_width="0dp"
                        android:layout_height="wrap_content"
                        android:layout_weight="72"
                        android:orientation="vertical">

                        <Button
                            android:id="@+id/just_in_target"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:text="GET DEAL" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </RelativeLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

布局在我的Android工作室中显示如下。

祝你有美好的一天!

试试这个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.cardview.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="20dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/just_in_store_name"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Loading"
                        android:textSize="20sp"
                        android:textColor="#000"
                        android:textStyle="bold"/>

                    <TextView
                        android:id="@+id/just_in_deal_description"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Loading"
                        android:layout_marginTop="5dp"
                        android:textSize="15sp"
                        android:textColor="#3A56F3"/>
                </LinearLayout>

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:background="#f2f2f2" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight=".3"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/ap"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="6dp"
                        android:text="Deal Price"
                        android:textColor="#757575"
                        android:textSize="16sp" />

                    <TextView
                        android:id="@+id/just_in_deal_price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/ap"
                        android:text="Deal Price"
                        android:textColor="#3691ea"
                        android:textSize="16sp" />

                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:layout_weight=".3"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/apv_discount"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="10% OFF"
                        android:textAlignment="center"
                        android:textColor="@color/colorPrimary"
                        android:textSize="18dp"
                        android:textStyle="bold"
                        android:visibility="visible" />

                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight=".3"
                    android:orientation="vertical">

                    <TextView
                        android:id="@+id/dp"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_marginBottom="6dp"
                        android:text="Actual Price"
                        android:textColor="#757575"
                        android:textSize="16sp" />

                    <TextView
                        android:id="@+id/just_in_actual_price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_below="@+id/dp"
                        android:layout_alignParentRight="true"
                        android:text="Actual Price"
                        android:textColor="#3691ea"
                        android:textSize="16sp" />

                </RelativeLayout>

            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:background="#f2f2f2" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">


                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="72"
                    android:orientation="vertical">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center"
                        android:text="Coupon Code" />

                    <TextView
                        android:id="@+id/coupon_code"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="4dp"
                        android:gravity="center"
                        android:text="Not Required"
                        android:textAlignment="center"
                        android:textAllCaps="true"
                        android:textColor="#308fe9"
                        android:textSize="20sp" />
                </LinearLayout>
            </LinearLayout>

            <View
                android:layout_width="match_parent"
                android:layout_height="2dp"
                android:layout_marginTop="8dp"
                android:layout_marginBottom="8dp"
                android:background="#f2f2f2" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="72"
                    android:orientation="vertical">

                    <Button
                        android:id="@+id/just_in_target"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="GET DEAL"
                        android:background="#78ca28"
                        android:textColor="#fff"/>

                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>
</androidx.cardview.widget.CardView>

我对您的布局进行了一些更改,增加了权重以对齐中间的百分比文本,还删除了样式文件,因为我没有任何样式文件的参考。

希望对你有用!!