Android 尝试在固定大小的容器中显示可滚动文本
我试图在ScrollView中的TextView中显示一些信息。文本的长度通常会有所不同,但我希望文本视图保持相同的高度,即使它是空的(如果文本太长,用户必须滚动)。我有滚动部分,但是如果文本太短,TextView会环绕它并收缩。我怎样才能避免呢?或者,我如何使用不同的东西获得我想要的外观和行为?我尝试过使用只读、多行EditText而不是TextView并删除ScrollView,但我无法使EditText只读,除非我将“enabled”属性设置为false,并且这样做不允许用户滚动 我用来测试我的应用程序的主要设备使用安卓4.4.4(KitKat),我还测试了版本4.1.2(果冻豆) 这是布局的代码;我遇到的TextView问题是TextViewInfo1:Android 尝试在固定大小的容器中显示可滚动文本,android,android-layout,textview,Android,Android Layout,Textview,我试图在ScrollView中的TextView中显示一些信息。文本的长度通常会有所不同,但我希望文本视图保持相同的高度,即使它是空的(如果文本太长,用户必须滚动)。我有滚动部分,但是如果文本太短,TextView会环绕它并收缩。我怎样才能避免呢?或者,我如何使用不同的东西获得我想要的外观和行为?我尝试过使用只读、多行EditText而不是TextView并删除ScrollView,但我无法使EditText只读,除非我将“enabled”属性设置为false,并且这样做不允许用户滚动 我用来测
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:id="@+id/RelativeLayoutMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:textStyle="bold"
android:textColor="#ff000000"
android:id="@+id/TextViewLabelName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name" />
<TextView
android:textColor="#ff000000"
android:id="@id/TextViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_textview"
android:layout_marginLeft="@dimen/margin_textview"
android:text=""
android:layout_toRightOf="@id/TextViewLabelName"
android:layout_toEndOf="@id/TextViewLabelName"
android:layout_alignBaseline="@id/TextViewLabelName" />
<TextView
android:textStyle="bold"
android:textColor="#000000"
android:id="@+id/TextViewTitle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_vertical_margin"
android:text="@string/title_1"
android:layout_below="@id/TextViewLabelName" />
<View
android:background="#000000"
android:layout_width = "match_parent"
android:layout_height="1dip"
android:layout_centerVertical ="true"
android:layout_below="@id/TextViewTitle1" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="100.0dip"
android:layout_marginTop="@dimen/padding_separator"
android:layout_alignStart="@id/TextViewTitle1"
android:layout_alignLeft="@id/TextViewTitle1"
android:layout_below="@id/TextViewTitle1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
<!-- This is the TextView I'm having trouble with. -->
<TextView
android:id="@+id/TextViewInfo1"
android:textColor="#000000"
android:layout_width="match_parent"
android:layout_height="100.0dip"
android:gravity="top"
android:ems="10"
android:textSize="@dimen/font_size_info_1"
android:background="@drawable/style_edittext" />
</ScrollView>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="horizontal"
android:layout_below="@id/RelativeLayoutMain"
android:gravity="bottom"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_1" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_2" />
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_3" />
</LinearLayout>
</RelativeLayout>
将其添加到您想要滚动的文本视图中 android:maxLines=“25” android:scrollbars=“垂直” 照这个做,应该行得通 编辑
此方法用于替换ScrollView。ScrollView和TextView至少在我的情况下不太协调。忘了在回答中提到这一点。将ScrollView替换为任何其他容器,如RelativeLayout或LinearLayout,它不起作用;看起来还是一样。我应该指出,我所说的TextView是ID为“TextViewInfo1”的那个(我编辑了我的问题以澄清问题)。而且,它的背景给了它一个边框,所以当文本视图缩小时很容易看到。没关系。我刚刚意识到问题在于滚动视图。我把它换成了一个相亲,它成功了。您可能应该编辑您的答案以指示必须更改ScrollView,否则您的答案是完美的。抱歉,我忘了提及查看我的编辑…如果答案有助于您解决问题,请接受答案:)
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="100.0dip"
android:layout_marginTop="@dimen/padding_separator"
android:layout_alignStart="@id/TextViewTitle1"
android:layout_alignLeft="@id/TextViewTitle1"
android:layout_below="@id/TextViewTitle1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true">
<!-- This is the TextView I'm having trouble with. -->
<TextView
android:id="@+id/TextViewInfo1"
android:textColor="#000000"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="top"
android:maxLines="25"
android:scrollbars="vertical"
android:ems="10"
android:textSize="@dimen/font_size_info_1"
android:background="@drawable/style_edittext" />
</RelativeLayout>
yourTextView.setMovementMethod(new ScrollingMovementMethod())