Android是否有办法让列表框具有设置大小,而不是填充父或内容?

时间:2012-06-12 22:39:25

标签: android

我想在顶部有一个TextView,如果它超过5行文本,它会滚动。然后是底部的文本列表,只列出剩余空间。

我正在使用带有TextView的ScrollView。问题是如果我将顶部滚动设置为扭曲内容,如果有超过5行文本,它将继续变大。如果我将其设置为填充父级,则不会显示按钮文本视图。有没有办法做到这一点?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tell a Furtune Chat"
        android:textSize="38px" />

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Tell a Furtune \n ted \n teda \n rob \n fred \n bed \n jack \n junk \n more"
            android:textSize="38px" />
    </ScrollView>

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Tell a Furtune \n ted \n teda \n rob \n fred \n bed \n jack \n junk \n more"
            android:textSize="38px" />
    </ScrollView>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,只需使用此属性:

<TextView
    ...
    android:maxLines="5" />

此外,如果您的ScrollViews正在“推动”屏幕底部的其他视图,您可以限制它们的高度:

<ScrollView
    ...
    android:height="100dp" >

<强>加成

来自Documentation

  

EditText是TextView上的精简贴面,可将其自身配置为可编辑。

然而在这种情况下:maxLines表现为两种截然不同的方式。我似乎记得TextView会在定义maxLines之后自动滚动,就像我定期使用的EditTexts一样。 (多么疯狂的想法!)无论如何,这是达到你想要的最简单方法:

<ScrollView
    android:layout_width="wrap_content"
    android:layout_height="90sp" >

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ... />
</ScrollView>

ScrollView的高度是字体大小与您想要显示的行数之比。您可以使用此处所述的maxLines属性(Making TextView scrollable on Android),但此解决方案不支持fling手势,并在用户滚动时创建“闪烁”效果。