ScrollView无法在相对布局中工作

时间:2014-03-24 14:08:58

标签: android scrollview relativelayout

我正在为我的应用程序登录页面。 ScrollView无法正常工作,我无法找到原因。我已经尝试将ScrollView的layout_height更改为wrap_content和一些任意值,如900dp,并且内部相对布局相同,但仍然没有运气。 当软键盘出现时,我在第一个editText视图中填写详细信息,并且想要向下滚动以填充第二个,而不关闭软键盘。页面不滚动。  这是代码

<?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:fillViewport="true">

<RelativeLayout
 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" >

<TextView
    android:id="@+id/register"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/textView4"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="14dp"
    android:linksClickable="true"
    android:text="New to scheduLAWyer ? Sign Up" />

<Button
    android:id="@+id/login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/register"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="14dp"
    android:text="Login" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="28dp"
    android:linksClickable="true"
    android:text="Forgot Password" />

<ImageView
    android:id="@+id/imageView123"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/schedulawyer" />

<LinearLayout
    android:id="@+id/lll"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/login"
    android:layout_alignRight="@+id/login"
    android:layout_below="@+id/imageView123"
    android:background="@drawable/rounded_corner"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Email/Phone"
        android:singleLine="true" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Password"
        android:inputType="textPassword" />
</LinearLayout>

</RelativeLayout>

</ScrollView>

5 个答案:

答案 0 :(得分:1)

好的,我自己解决了。问题是如果添加背景图像,页面将不会滚动,直到图像大于设备大小

答案 1 :(得分:0)

只需将RelativeLayoutLinearLayout一起包裹在android:layout_height="fill_parent"之内。这将使ScrollView内容扩展为。

另一种有点尴尬的方法可能是以编程方式进行 - 如this answer中所述。

答案 2 :(得分:0)

RelativeLayout 的高度更改为wrap_content

答案 3 :(得分:0)

<?xml version="1.0" encoding="UTF-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="15dp" >

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

//小部件

答案 4 :(得分:-1)

试试这个,看看会发生什么......

<RelativeLayout
    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" >

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

        <TextView
            android:id="@+id/register"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/textView4"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="14dp"
            android:linksClickable="true"
            android:text="New to scheduLAWyer ? Sign Up" />

        <Button
            android:id="@+id/login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/register"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_marginBottom="14dp"
            android:text="Login" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="28dp"
            android:linksClickable="true"
            android:text="Forgot Password" />

        <ImageView
            android:id="@+id/imageView123"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:src="@drawable/schedulawyer" />

        <LinearLayout
            android:id="@+id/lll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/login"
            android:layout_alignRight="@+id/login"
            android:layout_below="@+id/imageView123"
            android:background="@drawable/rounded_corner"
            android:orientation="vertical" >

        <EditText
            android:id="@+id/editText1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="Email/Phone"
            android:singleLine="true" >

            <requestFocus />
        </EditText>

        <EditText
            android:id="@+id/editText2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="Password"
            android:inputType="textPassword" />
        </LinearLayout>
    </ScrollView>
</RelativeLayout>