我想只滚动一个TextView

时间:2013-12-22 11:57:11

标签: android scrollview

我正在开发秒表应用程序。

我只想滚动一个TextView。

这是XML文件。

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#001729"
android:orientation="vertical" >



<Button
    android:id="@+id/btn_rec"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:enabled="false"
    android:onClick="myOnClick"
    android:text="Record" />

<Button
    android:id="@+id/btn_start"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/btn_rec"
    android:layout_alignParentLeft="true"
    android:onClick="myOnClick"
    android:text="Start" />


**<TextView
    android:id="@+id/record"
    android:layout_width="fill_parent"
    android:layout_height="500dp"
    android:layout_below="@+id/time_out"
    android:layout_above="@+id/btn_start"
    android:layout_alignParentLeft="true"
    android:padding="10dp"
    android:textColor="#FFFFFF"
    android:textSize="20sp" />**


<TextView
    android:id="@+id/time_out"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/relativeLayout1"
    android:layout_marginTop="37dp"
    android:gravity="center"
    android:text="00:00:00"
    android:textColor="#FFFFFF"
    android:textSize="60sp" />

我想只用粗体滚动TextView。

在这种情况下,我不知道如何使用ScrollView。

我该怎么办?谢谢:))

5 个答案:

答案 0 :(得分:1)

您可以使用选取框属性滚动TextView(即TextView中的文本)。

<TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scrollbars="vertical"
    android:marqueeRepeatLimit="marquee_forever"
    android:text="@string/hello_world" />

并以编程方式

    TextView textView = (TextView) findViewById(R.id.textView);
    textView.setMovementMethod(new ScrollingMovementMethod());

答案 1 :(得分:0)

将RelativeLayout的父级设置为ScrollView,因为ScrollView只能有1个直接子级! 或复制粘贴 -

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#001729"  
 >

<ScrollView 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#001729"
>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >




<Button
android:id="@+id/btn_rec"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:enabled="false"
android:onClick="myOnClick"
android:text="Record" />

<Button
android:id="@+id/btn_start"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/btn_rec"
android:layout_alignParentLeft="true"
android:onClick="myOnClick"
android:text="Start" />


<TextView
android:id="@+id/record"
android:layout_width="fill_parent"
android:layout_height="500dp"
android:layout_below="@+id/time_out"
android:layout_above="@+id/btn_start"
android:layout_alignParentLeft="true"
android:padding="10dp"
android:textColor="#FFFFFF"
android:textSize="20sp" />**


<TextView
android:id="@+id/time_out"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/relativeLayout1"
android:layout_marginTop="37dp"
android:gravity="center"
android:text="00:00:00"
android:textColor="#FFFFFF"
android:textSize="60sp" />

</LinearLayout>
<ScrollView>
</RelativeLayout>

这将滚动放置在RelativeLayout

中的所有TextView

答案 2 :(得分:0)

替换为

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"

                android:text="@string/hello_world" />
        </LinearLayout>
    </ScrollView>

答案 3 :(得分:0)

您可以将TextView替换为:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="500dp"
    android:padding="10dp"
    android:layout_above="@+id/btn_start"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/time_out" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TextView
            android:id="@+id/record"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textColor="#FFFFFF"
            android:textSize="20sp" />
    </RelativeLayout>
</ScrollView>

我所做的只是将它包装在RelativeLayout中,然后将其包装在ScrollView中。我还将TextView的布局属性放入ScrollView,因为现在ScrollView是父级。我选择做一个RelativeLayout,因为另一个答案选择了一个LinearLayout。这并不重要。

注意您可能需要使用一些属性。这个想法虽然存在。它应该可以解决。

答案 4 :(得分:0)

在XML(TextView内部)中,您可能需要设置属性:

android:minLines="2"
android:maxLines="5"

通过这种方式,您可以在textview中定义最小和最大行号,并且只会滚动它。

在这里阅读:

minLines

maxLines