scrollview不会在RelativeLayout中滚动android

时间:2014-10-30 13:22:28

标签: android android-scrollview android-relativelayout

我是使用scrollView的新手,所以请耐心等待我:)

我试图创建一个scrollView的整个视图,但scrollView不会滚动。

这是我的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/general_form_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg"
    android:fillViewport="true"
    android:orientation="vertical" >

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:scrollbars="vertical" >

        <RelativeLayout
            android:id="@+id/form_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true"
            android:padding="10dp" >

            <WebView
                android:id="@+id/myWebView"
                android:layout_width="match_parent"
                android:layout_height="250dp"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true" />

            <EditText
                android:id="@+id/FirstNameRegister"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/myWebView"
                android:autoText="false"
                android:editable="true"
                android:ems="10"
                android:hint="Full name"
                android:imeOptions="flagNoExtractUi"
                android:selectAllOnFocus="true"
                android:singleLine="true" />

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="16dp"
                android:text="+" />

            <ProgressBar
                android:id="@+id/myProgressBar"
                style="?android:attr/progressBarStyleLarge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/myWebView"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="84dp" />

            <EditText
                android:id="@+id/PhoneRegister"
                android:layout_width="205dp"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/textView1"
                android:layout_below="@+id/EmailRegister"
                android:autoText="false"
                android:editable="true"
                android:ems="10"
                android:hint="phone"
                android:imeOptions="flagNoExtractUi"
                android:inputType="phone"
                android:selectAllOnFocus="true"
                android:singleLine="true" />

            <EditText
                android:id="@+id/EmailRegister"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/myWebView"
                android:layout_alignBottom="@+id/myWebView"
                android:layout_alignParentRight="true"
                android:layout_marginRight="23dp"
                android:autoText="false"
                android:editable="true"
                android:ems="10"
                android:hint="Email"
                android:imeOptions="flagNoExtractUi"
                android:inputType="textEmailAddress"
                android:selectAllOnFocus="true"
                android:singleLine="true" />

            <EditText
                android:id="@+id/DialZonePhoneRegister"
                android:layout_width="55dp"
                android:layout_height="wrap_content"
                android:layout_alignBaseline="@+id/myWebView"
                android:layout_alignBottom="@+id/myWebView"
                android:layout_alignLeft="@+id/textView1"
                android:autoText="false"
                android:editable="true"
                android:ems="10"
                android:hint="3344"
                android:imeOptions="flagNoExtractUi"
                android:inputType="number"
                android:selectAllOnFocus="true"
                android:singleLine="true" >
            </EditText>
        </RelativeLayout>
    </ScrollView>

    <Button
        android:id="@+id/SubmitRegisterButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/EmailRegister"
        android:layout_centerHorizontal="true"
        android:background="@drawable/s" />

</RelativeLayout>

请帮助我:)

4 个答案:

答案 0 :(得分:2)

您必须将form_layout的布局参数更改为:

 android:id="@+id/form_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true"
        android:padding="10dp" >

换句话说,布局高度必须是wrap_content。 如果高度设置为match_parent,则它将从父布局填充屏幕高度,并且不会覆盖位于屏幕高度上方的额外元素。

答案 1 :(得分:0)

对于两个滚动条使用此代码。在表格布局上。

<HorizontalScrollView 
    android:layout_height="fill_parent"     
    android:scrollbars="horizontal|vertical" 
    android:layout_width="wrap_content"> 
     <LinearLayout android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">


     <TableLayout
        android:id="@+id/tableLayout3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:background="#ffffff" >

    </TableLayout>
<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/linearLayout4"
    android:layout_weight="1" >

    <TableLayout
        android:id="@+id/tableLayout2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff" >

    </TableLayout>
</ScrollView>
</LinearLayout>

或在relative Layout..

上使用此链接滚动条

答案 2 :(得分:0)

问题在于RelativeLayout,它必须具有wrap_content的高度,因为它需要与scrollview的内容一样大才能知道要滚动多少。

<RelativeLayout
        android:id="@+id/form_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp" >

答案 3 :(得分:0)

从您的按钮中删除此行

android:layout_below="@+id/EmailRegister"

运行App并查看“是否滚动”,然后查看“ Scrollview”放到根布局上,然后放到相对布局上

Scrollview -> RelativeLayout

像这样运行应用程序,不滚动,然后将Scrollview更改为NestedScrollview