android - 与布局相关的问题
问题描述
我有一个与我的布局有关的问题。
我想要这样的布局。其中折扣百分比显示在交易价格和实际价格的中心。这该怎么做。即使我将相对布局设置为包装内容,我的实际价格相对布局也会占用大量空间。而且在中心添加折扣百分比后,我的实际价格布局略低于。它不等于交易价格。
<?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] 中的每个元素在布局中占据相同的空间,据我所知,这就是你想要的。
我准备了一个和你类似的布局。我删除了您用来避免错误的样式(因为我没有它们)。我也CardView
从支持库中使用过。请查看以下布局,让我知道这是否符合您的目的。这只是为了让您了解 weight 属性如何服务于您的目的。
<?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 中显示如下。
祝你有美好的一天!
推荐阅读
- swift - 通知服务扩展不在应用安装时运行
- reactjs - React redux 与样式和与路由器连接
- sql-server - SQL Server 中的 while 循环需要很长时间
- java - Java11+Hibernate:启动层初始化时出错java.lang.module.FindException:找不到模块java.xml.bind
- javascript - 如何在拖放 JavaScript 中控制源 TD 样式?
- c++ - 如何在cpp中删除(释放)多维结构内存?
- pointers - 在其他切片内部的结构上附加切片不持久
- java - 如何从 Firebase 存储中计算文件(图像)
- python - Python:将数据输出到 Excel 电子表格
- react-native - 分享反应原生未出现在屏幕底部