Android 为什么将文本视图中的内容按宽度换行会保留整个宽度?
我在Android 为什么将文本视图中的内容按宽度换行会保留整个宽度?,android,android-layout,Android,Android Layout,我在线性布局中有一个简单的文本视图。 当我将TextView width设置为wrap_content时,内容会变得灵活,但当我将布局方向设置为vertical时,文本会获得整个屏幕的宽度 我已经为布局和文本视图设置了背景色,因此我可以看到文本的实际占用空间 我已经读过wrap_content和match_parent之间的区别,但在我的例子中,它实际上并没有做它应该做的事情 以下是我的XML: <LinearLayout xmlns:android="http://schema
线性布局中有一个简单的文本视图
。
当我将TextView width设置为wrap_content
时,内容会变得灵活,但当我将布局方向设置为vertical
时,文本会获得整个屏幕的宽度
我已经为布局和文本视图设置了背景色,因此我可以看到文本的实际占用空间
我已经读过wrap_content和match_parent之间的区别,但在我的例子中,它实际上并没有做它应该做的事情
以下是我的XML:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#fe4236"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:text="Hi there!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="36sp"
android:textColor="@android:color/black"
android:background="#ccddff"
/>
</LinearLayout>
更新
道歉,如果我听起来像是在惩罚你,或者听起来像是对我最初答案的人身攻击;我没有掌握全部情况,以为你在寻找解决问题的办法
我真正想说的是,您发布的XML片段在我的环境中不会产生相同的输出(据我所知,它不应该产生相同的输出);当我看它的时候,它看起来很好,甚至在尝试运行它之前,所以它让我对这种可能性感到皱眉,这也让我相信你正在做一些我不知道的事情,因此我要求提供更多信息
现在我们知道您正在使用在线可视化工具。。。让我告诉你,我以前从未见过它,但在上下文中,Android Studio可视化工具如下所示:
我对您的代码段所做的唯一修改是添加缺少的XML头:
在文件的顶部(如果添加Udacity visualizer,则会显示错误)
总之,我在最初的回答中想说的是,这里你不需要做什么,因为你假设TextView
中的wrap\u内容应该足以让文本包装它的内容,是正确的
Udacity错误,无法正确渲染在水平轴上包含环绕子对象的垂直线性布局
祝你训练顺利
如果你在第一次发布这个问题时就发布了Udacity的东西,那么我就可以为你省去阅读我原始答案的麻烦和潜在的沮丧体验。
下面是原始答案,不再相关。
我不确定您在哪里/如何看到这一点,但我认为您需要首先了解Android上的布局引擎是如何工作的
发生什么事?
我在我的Android Studio(3.4.1)中粘贴了你的代码,下面是我看到的:
无论是垂直的还是水平的,都没有关系,因为在两个方向上都有足够的空间
你能做什么?
如果您想使用ConstraintLayout(我会),那么以下是实现相同结果的方法:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fe4236"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Hi there!"
android:background="#ccddff"
android:textColor="@android:color/black"
android:textSize="36sp"
/>
</android.support.constraint.ConstraintLayout>
(没有发布截图,但相信我,它看起来是一样的)。更新
道歉,如果我听起来像是在惩罚你,或者听起来像是对我最初答案的人身攻击;我没有掌握全部情况,以为你在寻找解决问题的办法
我真正想说的是,您发布的XML片段在我的环境中不会产生相同的输出(据我所知,它不应该产生相同的输出);当我看它的时候,它看起来很好,甚至在尝试运行它之前,所以它让我对这种可能性感到皱眉,这也让我相信你正在做一些我不知道的事情,因此我要求提供更多信息
现在我们知道您正在使用在线可视化工具。。。让我告诉你,我以前从未见过它,但在上下文中,Android Studio可视化工具如下所示:
我对您的代码段所做的唯一修改是添加缺少的XML头:
在文件的顶部(如果添加Udacity visualizer,则会显示错误)
总之,我在最初的回答中想说的是,这里你不需要做什么,因为你假设TextView
中的wrap\u内容应该足以让文本包装它的内容,是正确的
Udacity错误,无法正确渲染在水平轴上包含环绕子对象的垂直线性布局
祝你训练顺利
如果你在第一次发布这个问题时就发布了Udacity的东西,那么我就可以为你省去阅读我原始答案的麻烦和潜在的沮丧体验。
下面是原始答案,不再相关。
我不确定您在哪里/如何看到这一点,但我认为您需要首先了解Android上的布局引擎是如何工作的
发生什么事?
我在我的Android Studio(3.4.1)中粘贴了你的代码,下面是我看到的:
无论是垂直的还是水平的,都没有关系,因为在两个方向上都有足够的空间
你能做什么?
如果您想使用ConstraintLayout(我会),那么以下是实现相同结果的方法:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fe4236"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="Hi there!"
android:background="#ccddff"
android:textColor="@android:color/black"
android:textSize="36sp"
/>
</android.support.constraint.ConstraintLayout>
(没有发布截图,但相信我,它看起来是一样的)。你好,罗斯,欢迎来到SO!你能发布一个截图,说明它在两种情况下的外观以及你希望它的外观吗?嘿,马丁。我刚刚添加了。当我将布局的方向设置为垂直时,文本将获得屏幕的全宽->这没有意义;您需要发布整个布局和/或您的结果,因为根据提供的信息,没有足够的信息来确定发生了什么。你好,Rose,欢迎使用SO!你能发布一个截图,说明它在两种情况下的外观以及你希望它的外观吗?嘿,马丁。我刚加了一句。当我设置东方时