在不知道最大行的情况下使TextView可滚动

时间:2011-09-23 22:22:35

标签: android scroll textview

我想让TextView垂直滚动。我读过“Making TextView Scrollable in Android”,但由于我不知道最终设备的屏幕尺寸,我不知道应该为最大线设置哪个值。

有没有其他方法,所以它可以滚动任何屏幕尺寸?

我的XML看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ScrollView
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:layout_weight="1.0">
        <TextView
            android:id="@+id/consola"
            android:layout_width="fill_parent" 
            android:layout_height="match_parent"/>
    </ScrollView>

    <EditText 
        android:id="@+id/comando"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.0"/>

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="0.0">

        <Button
            android:text="Conectar"
            android:id="@+id/boton_conectar"
            android:layout_width="wrap_content"
            android:layout_weight="0.5"
            android:layout_height="wrap_content">
        </Button>
        <Button
            android:text="Enviar"
            android:id="@+id/boton_enviar"
            android:layout_width="wrap_content"
            android:layout_weight="0.5"
            android:layout_height="wrap_content">
        </Button>
    </LinearLayout>
</LinearLayout>

4 个答案:

答案 0 :(得分:4)

看,这里是我的XML布局的结构,带有滚动:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:scrollbars="vertical" 
        android:visibility="visible">

<LinearLayout 
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    .....
    //your sub-widgets
    .....
</LinearLayout>
</ScrollView>

至于我,工作正常。

答案 1 :(得分:1)

如果您不知道行数(此外,如果显示软输入法可能会有所不同),您应该使用RelativeLayout将小部件设置为TextView。然后将两者(它的关键,而非两者)的顶部和底部边缘连接到具有android:layout_alignParentTopandroid:layout_alignParentBottom属性的父级或具有android:layout_above的邻居和android:layout_below属性。

双方连接到其他小部件后,即使您更改方向或显示/隐藏软键盘,Android也会正确重新计算TextView和卷轴的大小。

答案 2 :(得分:0)

将TextView放在ScrollView中,高度为= MATCH_PARENT

尝试:

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

    <ScrollView
        android:layout_width="0dp" 
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:layout_weight="1.0">
        <TextView
            android:id="@+id/consola"
            android:layout_width="fill_parent" 
            android:layout_height="match_parent"/>
    </ScrollView>

    <EditText 
        android:id="@+id/comando"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
       />

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">

        <Button
            android:text="Conectar"
            android:id="@+id/boton_conectar"
            android:layout_width="wrap_content"
            android:layout_weight="0.5"
            android:layout_height="wrap_content">
        </Button>
        <Button
            android:text="Enviar"
            android:id="@+id/boton_enviar"
            android:layout_width="wrap_content"
            android:layout_weight="0.5"
            android:layout_height="wrap_content">
        </Button>
    </LinearLayout>
</LinearLayout>

答案 3 :(得分:0)

ScrollView只允许有一个子小部件。

您应该将linearlayout放在滚动视图中。并在线性布局中设置textview。