如何在android中使用ScrollView标签

时间:2014-01-23 09:15:07

标签: android layout scroll scrollview

这是我的activity_main.xml代码。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/hello_world" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_alignTop="@+id/textView1"
    android:contentDescription="@string/walter_white"
    android:src="@drawable/walter1" />

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_below="@+id/imageView1"
    android:layout_marginLeft="14dp"
    android:layout_marginTop="21dp" >


<TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/scrollView1"
    android:layout_alignLeft="@+id/imageView1"
    android:text="@string/break_bad" />
 </ScrollView>

</RelativeLayout>

我想知道我的代码是对还是错,请指正。我想知道我的ScrollView是否正常工作,因为我无法在模拟器中滚动文本

5 个答案:

答案 0 :(得分:0)

您要滚动的所有内容都必须位于ScrollView定义中。例如:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_below="@+id/imageView1"
    android:layout_marginLeft="14dp"
    android:layout_marginTop="21dp" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/scrollView1"
        android:layout_alignLeft="@+id/imageView1"
        android:text="@string/break_bad" />
</ScrollView>

答案 1 :(得分:0)

如果要在TextView中使用id&#34; textView2&#34;滚动文本你应该把它放在和标签之间。

另外:我通常不会将滚动视图的高度设置为&#34; wrap_content&#34;但是以其他方式定义它,比如&#34; match_parent&#34;或者将它与周围的其他视图对齐。这是有道理的,因为通常你知道你想要ScrollView的大小,但是你不知道你放入它的大小。这就是你可能首先使用ScrollView的原因。

答案 2 :(得分:0)

截至目前,您的ScrollView为空(不包含任何文字)。如果你想能够滚动,尝试这样的事情:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_below="@+id/imageView1"
    android:layout_marginLeft="14dp"
    android:layout_marginTop="21dp" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/scrollView1"
        android:layout_alignLeft="@+id/imageView1"
        android:text="@string/break_bad" />
</ScrollView>

由于ScrollView只能有一个子节点,如果您希望能够滚动多个View,ScrollView的第一个子节点必须是可以有子节点的ViewGroup,this question中有更多详细信息。

答案 3 :(得分:0)

您可以通过两种方式执行此操作:

单向:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_below="@+id/imageView1"
    android:layout_marginLeft="14dp"
    android:layout_marginTop="21dp"
    android:scrollbars="vertical" >


<TextView
    android:id="@+id/textView2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/scrollView1"
    android:layout_alignLeft="@+id/imageView1"
    android:text="@string/break_bad" />
 </ScrollView>

第二种方式:

在TextView中放置以下行并删除scrollview ..

android:scrollbars = "vertical"

答案 4 :(得分:0)

您需要在LinearLayout内以垂直方向传递ScrollView并设置固定ScrollView高度。对于Exmaple:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="200dp"
    android:layout_alignLeft="@+id/imageView1"
    android:layout_below="@+id/imageView1"
    android:layout_marginLeft="14dp"
    android:layout_marginTop="21dp" >

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

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/scrollView1"
        android:layout_alignLeft="@+id/imageView1"
        android:text="@string/break_bad" />

    </LinearLayout>
</ScrollView>