Вопросы, связанные с макетом - PullRequest
1 голос
/ 10 октября 2019

У меня есть проблема, связанная с моим макетом.

Я хочу, чтобы мой макет был таким. где процент скидки должен быть указан в центре цены сделки и фактической цены. как это сделатьМое относительное расположение по фактической цене занимает много места, даже если я установил относительное расположение в качестве содержимого переноса. а также после добавления процента скидки в центре, мой фактический макет цены немного ниже. Он не выровнен как равный цене сделки.

<?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>

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Я хотел бы предложить LinearLayout здесь с атрибутами веса, чтобы каждый элемент в этой [ЦЕНА СДЕЛКИ - СКИДКА - АКТУАЛЬНАЯ ЦЕНА] занимала одинаковое пространство в макете, и это то, что вы хотите, насколько я понимаю,

Я подготовил макет, похожий на ваш. Я удалил стили, которые вы использовали, чтобы избежать ошибок (так как у меня их нет). Я также userd 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 Studio макет выглядит следующим образом.

enter image description here

Хорошего дня!

0 голосов
/ 11 октября 2019

enter image description here

Попробуйте это

<?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>

Я внес некоторые изменения в ваш макет, добавил вес, чтобы выровнять проценттекст между ними, а также удалить файлы стилей, так как я не имею никаких ссылок на ваши файлы стилей.

Надеюсь, это работает для вас !!

...