我有一个带有多个嵌套视图的
LinearLayout
。主视图是一个 CardView
,其中包含文本和进度条。为了确保卡片内部有适当的间距,我设置了 50dp
的填充。如果没有这种填充,所有内部视图都将居中并相互重叠,并且 CardView
将缩小以适应其内容。因此,为了防止这种情况,我添加了填充。
但是,我现在面临的问题是,对于长单词,文本会根据设备的宽度换行到下一行,这是我不希望的。我也不想损害卡的内部间距。
您可以参考下面的屏幕截图以获得更好的想法:
此外,这是完整的布局截图供参考:
下面是我当前使用的 XML 布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black"
tools:context=".FragmentResults">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20sp"
android:orientation="vertical">
<!-- Multiple similar layouts above and below -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_weight="1"
android:orientation="horizontal">
<com.google.android.material.card.MaterialCardView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:backgroundTint="@color/grey"
android:orientation="vertical"
app:cardCornerRadius="40dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/grey"
android:padding="50dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Masculinity"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/masculinity_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:textColor="@color/white"
android:textSize="50sp"
android:textStyle="bold" />
</LinearLayout>
<ProgressBar
android:id="@+id/masculinity_score_progress_bar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="10dp"
android:layout_gravity="bottom"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="35dp"
android:max="100" />
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="5dp"
android:layout_weight="1"
android:backgroundTint="@color/grey"
android:orientation="vertical"
app:cardCornerRadius="40dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/grey"
android:orientation="vertical"
android:padding="50dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:text="Jawline"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold" />
<TextView
android:id="@+id/jawline_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:textColor="@color/white"
android:textSize="50sp"
android:textStyle="bold" />
</LinearLayout>
<ProgressBar
android:id="@+id/jawline_score_progress_bar"
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="10dp"
android:layout_gravity="bottom"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_marginBottom="35dp"
android:max="100" />
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
谁能帮我解决这个问题
从“LinearLayout”中删除这一行,它是“MaterialCardView”的第一个子元素
android:padding="50dp"