如何防止文本视图中长文本换行到下一行

问题描述 投票:0回答:1

我有一个带有多个嵌套视图的

LinearLayout
。主视图是一个
CardView
,其中包含文本和进度条。为了确保卡片内部有适当的间距,我设置了
50dp
的填充。如果没有这种填充,所有内部视图都将居中并相互重叠,并且
CardView
将缩小以适应其内容。因此,为了防止这种情况,我添加了填充。

但是,我现在面临的问题是,对于长单词,文本会根据设备的宽度换行到下一行,这是我不希望的。我也不想损害卡的内部间距。

您可以参考下面的屏幕截图以获得更好的想法:

So I'm getting this

此外,这是完整的布局截图供参考:

full layout screen shot

下面是我当前使用的 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>

谁能帮我解决这个问题

android textview android-linearlayout android-textview-autosize
1个回答
0
投票

从“LinearLayout”中删除这一行,它是“MaterialCardView”的第一个子元素

android:padding="50dp"
© www.soinside.com 2019 - 2024. All rights reserved.