对于宽度较小的手机,文本超出范围
Posted
技术标签:
【中文标题】对于宽度较小的手机,文本超出范围【英文标题】:Text goes out of bounds for phones with a smaller width size 【发布时间】:2020-05-01 16:13:33 【问题描述】:我有一组代码适合所有宽度为 1080 或更大的手机,但是对于宽度为 720 的手机,我最后一个 TextView 的 textSize 为 20dp,文本“价格”超出了手机宽度的一半。所以基本上,对于宽度为 1080 或更大的手机,我想保持我的 textSize 为 20dp,因为它适合这些手机,但对于宽度为 720 的手机,我想减少它的 textSize。我该怎么做?
需要这个才能在 android 5.0 及更高版本上工作
<androidx.constraintlayout.widget.ConstraintLayout
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:layout_
android:layout_
tools:context=".MainActivity">
<ScrollView
android:layout_
android:layout_
android:background="#00FFFFFF"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:context=".MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_
android:layout_
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_marginStart="268dp"
android:layout_marginLeft="268dp"
android:layout_marginTop="96dp"
android:onClick="onButtonClick"
android:text="Go"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/Name1"
android:layout_
android:layout_
android:layout_marginTop="85dp"
android:ems="10"
android:hint="Symbol"
android:inputType="textPersonName"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Spinner
android:id="@+id/spinner1"
android:layout_
android:layout_
android:layout_marginStart="76dp"
android:layout_marginLeft="76dp"
android:layout_marginTop="92dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/Price1"
android:layout_
android:layout_
android:layout_marginStart="192dp"
android:layout_marginLeft="192dp"
android:layout_marginTop="84dp"
android:ems="10"
android:hint="Amount"
android:inputType="numberDecimal"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text1"
android:layout_
android:layout_
android:layout_marginStart="324dp"
android:layout_marginLeft="324dp"
android:layout_marginTop="100dp"
android:text="Price"
android:textSize="20dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
【问题讨论】:
首先添加end
约束。然后,考虑使用自动调整大小:developer.android.com/guide/topics/ui/look-and-feel/….
@CommonsWare 那是 android 8.0 或更高版本。
不,appcompat
自动调整大小也适用于旧设备。不过,请使用 app:
而不是 android:
作为属性命名空间前缀。
@CommonsWare 您能否在我的 我浏览了您的布局并尝试改进它,我将如何进行这样的布局。您正在使用ConstraintLayout
,因此您希望彼此对齐视图。例如,您可以将您的价格调整到最右边,使其向左展开,并将其他视图向左推。
<ScrollView
android:layout_
android:layout_
android:background="#00FFFFFF"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:context=".MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_
android:layout_
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<EditText
android:id="@+id/Name1"
android:layout_
android:layout_
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:hint="Symbol"
android:inputType="textPersonName"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button1"
android:layout_
android:layout_
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:onClick="onButtonClick"
android:text="Go"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/text1"
app:layout_constraintTop_toTopOf="parent" />
<Spinner
android:id="@+id/spinner1"
android:layout_
android:layout_
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
android:minWidth="120dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/Name1"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/Price1"
android:layout_
android:layout_
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:hint="Amount"
android:inputType="numberDecimal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/button1"
app:layout_constraintStart_toEndOf="@+id/spinner1"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/text1"
android:layout_
android:layout_
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="8dp"
android:text="Price"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
【讨论】:
以上是关于对于宽度较小的手机,文本超出范围的主要内容,如果未能解决你的问题,请参考以下文章
取巧处理:UILabel(IOS开发) 超出宽度的文本省略号的问题
scikit-learn joblib 错误:多处理池 self.value 超出“i”格式代码的范围,仅适用于大型 numpy 数组