gpt4 book ai didi

java - XML 中按钮的换行符不受尊重,但它适用于 Java 代码

转载 作者:行者123 更新时间:2023-11-29 18:45:54 25 4
gpt4 key购买 nike

我有一个带有长文本的按钮,我想将其分布在两行中,以使按钮的宽度与其他按钮的大小相同。

问题是,当我通过 XML 代码执行此操作时,AVD 和我的硬件设备都会忽略换行符(但在编辑器预览中正确显示)。当我使用 Java 代码执行此操作时,它受到尊重。

这被忽略了:

<Button
android:id="@+id/button"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="doyouspeakenglish"
android:text="Do you\nspeak English?" />

这会正确应用换行符:

((Button) findViewById(R.id.button)).setText("Do you\nspeak English?");

XML 方式被忽略的原因可能是什么?我还尝试了 ,如这里所建议的:how can I display multiple lines of text on a button .同样,没有成功。

完整布局代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<GridLayout
android:layout_width="368dp"
android:layout_height="495dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:columnCount="2"
android:rowCount="4"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">

<Button
android:id="@+id/button"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="doyouspeakenglish"
android:text="Do you\nspeak English?" />

<Button
android:id="@+id/button2"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="goodevening"
android:text="Good Evening" />

<Button
android:id="@+id/button3"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="hello"
android:text="Hello" />

<Button
android:id="@+id/button4"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="howareyou"
android:text="How are you?" />

<Button
android:id="@+id/button5"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="ilivein"
android:text="I live in..." />

<Button
android:id="@+id/button6"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="mynameis"
android:text="My name is..." />

<Button
android:id="@+id/button7"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="please"
android:text="Please" />

<Button
android:id="@+id/button8"
android:layout_columnWeight="1"
android:layout_gravity="fill"
android:layout_rowWeight="1"
android:onClick="playSpeech"
android:tag="welcome"
android:text="Welcome" />
</GridLayout>
</android.support.constraint.ConstraintLayout>

其他细节:使用 Android Studio 3.1.4 和 SDK v26

请注意,此问题与 How do I add a newline to a TextView in Android? 不同,因为那里为 textview 建议的解决方案不适用于我的 button 案例。

最佳答案

试试这个

      <LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="playSpeech"
android:tag="doyouspeakenglish"
android:maxLines="2"
android:text="Do you \n speak English?" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="playSpeech"
android:tag="doyouspeakenglish"
android:maxLines="2"
android:text="Do you \n speak English?" />

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="playSpeech"
android:tag="doyouspeakenglish"
android:maxLines="2"
android:text="Do you \n speak English?" />

</LinearLayout>

关于java - XML 中按钮的换行符不受尊重,但它适用于 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51980058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com