有谁知道如何在Android平台的TextView中包装文本。即,如果textview中的文本超过屏幕长度,则应在第二行中显示。
我已经搜索并尝试了以下操作:
android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"
但是没有办法。
谁能建议我该怎么做。
有谁知道如何在Android平台的TextView中包装文本。即,如果textview中的文本超过屏幕长度,则应在第二行中显示。
我已经搜索并尝试了以下操作:
android:scrollHorizontally="false",
android:inputType="textMultiLine",
android:singleLine="false"
但是没有办法。
谁能建议我该怎么做。
android:inputType="textPersonName"
。显然,它是由Android Studio设计工具添加的。删除该属性可解决问题!可能还有其他输入类型也阻止换行。
Answers:
对我来说,此问题仅发生在Android <4.0上
我使用的参数组合为:
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
maxLines计数似乎是使TextView换行的随机最终部分。
match_parent
,这与使TextView的高度扩展为包括多余的行不同。
<TextView
android:id="@+id/some_textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="@id/textview_above"
app:layout_constraintRight_toLeftOf="@id/button_to_right"/>
android:maxLines="2"
为防止垂直扩展(2只是一个示例)android:ellipsize="end"
0dp width允许左右约束确定小部件的宽度。
设置左右约束可设置窗口小部件的实际宽度,文本将在其中自动换行。
对于其中的情况下TextView
是内侧的TableLayout
,该解决方案是设置android:shrinkColumns="1"
在TableLayout
。(用1
要包装的TextView所在的列号替换。(0索引))
AFAICT,不需要其他属性TextView
。
对于其他情况,请参见此处的其他答案。
FWIW,我最初是将其与
<TextView
android:id="@+id/inventory_text"
android:layout_width="fill_parent"
android:layout_weight="1"
android:width="0dp"
但这在对话框的底部导致了所有多余的空白。
使用
app:breakStrategy="simple"
中AppCompatTextView
,它会在控制段落布局。
它具有三个常数值
在TextView xml中设计
<android.support.v7.widget.AppCompatTextView
android:id="@+id/textquestion"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:scrollHorizontally="false"
android:text="Your Question Display Hear....Your Question Display Hear....Your Question Display Hear....Your Question Display Hear...."
android:textColor="@android:color/black"
android:textSize="20sp"
android:textStyle="bold"
app:breakStrategy="simple" />
如果您当前的最低api级别为23或更高,则在编码中
yourtextview.setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE);
有关更多参考,请参考此BreakStrategy
这应该可以解决您的问题:android:layout_weight="1"
。
match_parent
。与OP所希望的不太一样。
layout_weight="1"
为我解决此问题。但是,我的包含TextView的TableRow已layout_height
设置为特定值。可能对某人有用
好的,事实真相是中间的,因为您必须从父母和孩子的角度看问题。以下解决方案仅在微调器模式=dialog
而不考虑Android版本时才有效(那里没有问题..在VD和DesireS中使用Android => 2.2进行了测试):
。将您的微调器(父母)模式设置为:
android:spinnerMode="dialog"
将textview的(子级自定义视图)属性设置为:
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
我希望这也对您有用。
在Android Studio 2.2.3中,该inputType
属性下有个名为的属性textMultiLine
。选择此选项为我解决了类似的问题。希望对您有所帮助。
够奇怪的-我用代码创建了TextView并包装了它-尽管我没有设置除标准内容以外的任何内容-但亲自下来看:
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
childParams.setMargins(5, 5, 5, 5);
Label label = new Label(this);
label.setText("This is a testing label This is a testing label This is a testing label This is a testing labelThis is a testing label This is a testing label");
label.setLayoutParams(childParams);
从参数定义中可以看到,我正在使用LinearLayout。Label类只是扩展了TextView-除了设置字体大小和字体颜色之外,在此不执行任何操作。
在仿真器(API级别9)中运行它时,它将自动跨3行换行。
LinearLayout.LayoutParams childParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
。最有可能是您认为包裹是“自动的”包裹
只需设置layout_with
为确定的大小,当文本填充最大宽度时,它将溢出到下一行,从而产生环绕效果。
<TextView
android:id="@+id/segmentText"
android:layout_marginTop="10dp"
android:layout_below="@+id/segmentHeader"
android:text="You have the option to record in one go or segments(if you swap options
you will loose your current recordings)"
android:layout_width="300dp"
android:layout_height="wrap_content"/>
诀窍是使用textView宽度,尝试使其成为专用数字,例如:
<TextView
android:layout_width="300dp"
android:layout_height="wrap_content"/>
我尝试了许多解决方案但没有任何结果,我尝试了:
android:ellipsize="none"
android:scrollHorizontally="false"
触发包装选项的唯一一件事是专用宽度
您需要使用以下内容在ScrollView中添加TextView:
<ScrollView android:id="@+id/SCROLL_VIEW"
android:layout_height="150px"
android:layout_width="fill_parent">
<TextView
android:id="@+id/TEXT_VIEW"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header This text view should act as header" />
</ScrollView>