ScrollView中的RelativeLayout不会滚动

时间:2014-05-28 05:04:47

标签: android android-layout relativelayout android-scrollview

我正在开发我的第一个Android应用程序,我正试图让所有内容滚动除了广告。我将除广告之外的所有内容放入RelativeLayout并将其放入ScrollView中。当我点击EditText并且键盘出现时,ScrollView中的所有内容都会向上移动,但我无法滚动。

代码是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.tipcalculator.app.MainActivity">

    <com.google.android.gms.ads.AdView android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adUnitId="*adId*"
        ads:adSize="BANNER"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:layout_below="@+id/adView">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentTop="true">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number|numberDecimal"
        android:ems="10"
        android:id="@+id/tipTxt"
        android:editable="true"
        android:clickable="true"
        android:hint="Other"
        android:layout_alignBottom="@+id/tipOthr"
        android:layout_toRightOf="@+id/tipOthr"
        android:enabled="false" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="number|numberDecimal"
        android:ems="10"
        android:id="@+id/priceTxt"
        android:editable="true"
        android:clickable="true"
        android:hint="Price"
        android:enabled="true"
        android:layout_above="@+id/splitInTxt"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:id="@+id/splitTxt"
        android:layout_marginBottom="22dp"
        android:editable="false"
        android:clickable="false"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/totalTxt"
        android:layout_alignStart="@+id/totalTxt"
        android:gravity="center_vertical"
        android:text="$0.00"
        android:textAlignment="center" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Calculate Tip"
        android:id="@+id/calcBtn"
        android:enabled="false"
        android:layout_marginBottom="29dp"
        android:clickable="true"
        android:gravity="center_vertical"
        android:layout_above="@+id/totalTxt"
        android:layout_centerHorizontal="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:id="@+id/totalTxt"
        android:editable="false"
        android:clickable="false"
        android:gravity="center_vertical"
        android:text="$0.00"
        android:textAlignment="center"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignLeft="@+id/ tipOutTxt "
        android:layout_alignStart="@+id/ tipOutTxt " />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="10%"
        android:id="@+id/tipTen"
        android:checked="false"
        android:clickable="true"
        android:enabled="true"
        android:layout_above="@+id/tipFtn"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="15%"
        android:id="@+id/tipFtn"
        android:checked="false"
        android:clickable="true"
        android:enabled="true"
        android:layout_above="@+id/tipTnty"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="20%"
        android:id="@+id/tipTnty"
        android:checked="false"
        android:clickable="true"
        android:enabled="true"
        android:layout_above="@+id/tipTxt"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tipOthr"
        android:checked="false"
        android:layout_above="@+id/calcBtn"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="29dp"
        android:clickable="true"
        android:enabled="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Total"
        android:id="@+id/textView2"
        android:layout_above="@+id/splitTxt"
        android:layout_alignRight="@+id/textView3"
        android:layout_alignEnd="@+id/textView3" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Split"
        android:id="@+id/textView3"
        android:layout_alignBottom="@+id/splitTxt"
        android:layout_alignRight="@+id/textView5"
        android:layout_alignEnd="@+id/textView5" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Split"
        android:id="@+id/textView"
        android:longClickable="false"
        android:singleLine="true"
        android:layout_above="@+id/tipTen"
        android:layout_toLeftOf="@+id/minusBtn" />


    <EditText
        android:layout_width="76dp"
        android:layout_height="wrap_content"
        android:inputType="number"
        android:ems="10"
        android:id="@+id/splitInTxt"
        android:text="1"
        android:enabled="true"
        android:editable="true"
        android:gravity="center|right"
        android:layout_above="@+id/tipTen"
        android:layout_centerHorizontal="true" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:text="+"
        android:id="@+id/plusBtn"
        android:enabled="true"
        android:clickable="true"
        android:layout_alignBottom="@+id/splitInTxt"
        android:layout_alignRight="@+id/tipTxt"
        android:layout_alignEnd="@+id/tipTxt" />

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:text="-"
        android:id="@+id/minusBtn"
        android:clickable="true"
        android:enabled="true"
        android:layout_alignBottom="@+id/splitInTxt"
        android:layout_toLeftOf="@+id/splitInTxt" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10"
        android:id="@+id/ tipOutTxt "
        android:editable="false"
        android:clickable="false"
        android:gravity="center_vertical"
        android:text="$0.00"
        android:textAlignment="center"
        android:layout_alignBottom="@+id/textView5"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Tip"
        android:id="@+id/textView5"
        android:layout_above="@+id/totalTxt"
        android:layout_toRightOf="@+id/tipOthr" />
    </RelativeLayout>
    </ScrollView>
</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

试试这个,将相对布局包裹在线性布局中。

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >

            <com.google.android.gms.ads.AdView android:id="@+id/adView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                ads:adUnitId="*adId*"
                ads:adSize="BANNER"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true" />

            <ScrollView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:fillViewport="true"
                android:layout_below="@+id/adView">

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


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


            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="number|numberDecimal"
                android:ems="10"
                android:id="@+id/tipTxt"
                android:editable="true"
                android:clickable="true"
                android:hint="Other"
                android:layout_alignBottom="@+id/tipOthr"
                android:layout_toRightOf="@+id/tipOthr"
                android:enabled="false" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="number|numberDecimal"
                android:ems="10"
                android:id="@+id/priceTxt"
                android:editable="true"
                android:clickable="true"
                android:hint="Price"
                android:enabled="true"
                android:layout_above="@+id/splitInTxt"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/splitTxt"
                android:layout_marginBottom="22dp"
                android:editable="false"
                android:clickable="false"
                android:layout_alignParentBottom="true"
                android:layout_alignLeft="@+id/totalTxt"
                android:layout_alignStart="@+id/totalTxt"
                android:gravity="center_vertical"
                android:text="$0.00"
                android:textAlignment="center" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Calculate Tip"
                android:id="@+id/calcBtn"
                android:enabled="false"
                android:layout_marginBottom="29dp"
                android:clickable="true"
                android:gravity="center_vertical"
                android:layout_above="@+id/totalTxt"
                android:layout_centerHorizontal="true" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/totalTxt"
                android:editable="false"
                android:clickable="false"
                android:gravity="center_vertical"
                android:text="$0.00"
                android:textAlignment="center"
                android:layout_alignBottom="@+id/textView2"
                android:layout_alignLeft="@+id/ tipOutTxt "
                android:layout_alignStart="@+id/ tipOutTxt " />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="10%"
                android:id="@+id/tipTen"
                android:checked="false"
                android:clickable="true"
                android:enabled="true"
                android:layout_above="@+id/tipFtn"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="15%"
                android:id="@+id/tipFtn"
                android:checked="false"
                android:clickable="true"
                android:enabled="true"
                android:layout_above="@+id/tipTnty"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="20%"
                android:id="@+id/tipTnty"
                android:checked="false"
                android:clickable="true"
                android:enabled="true"
                android:layout_above="@+id/tipTxt"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/tipOthr"
                android:checked="false"
                android:layout_above="@+id/calcBtn"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginBottom="29dp"
                android:clickable="true"
                android:enabled="true" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Total"
                android:id="@+id/textView2"
                android:layout_above="@+id/splitTxt"
                android:layout_alignRight="@+id/textView3"
                android:layout_alignEnd="@+id/textView3" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Split"
                android:id="@+id/textView3"
                android:layout_alignBottom="@+id/splitTxt"
                android:layout_alignRight="@+id/textView5"
                android:layout_alignEnd="@+id/textView5" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Split"
                android:id="@+id/textView"
                android:longClickable="false"
                android:singleLine="true"
                android:layout_above="@+id/tipTen"
                android:layout_toLeftOf="@+id/minusBtn" />


            <EditText
                android:layout_width="76dp"
                android:layout_height="wrap_content"
                android:inputType="number"
                android:ems="10"
                android:id="@+id/splitInTxt"
                android:text="1"
                android:enabled="true"
                android:editable="true"
                android:gravity="center|right"
                android:layout_above="@+id/tipTen"
                android:layout_centerHorizontal="true" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:text="+"
                android:id="@+id/plusBtn"
                android:enabled="true"
                android:clickable="true"
                android:layout_alignBottom="@+id/splitInTxt"
                android:layout_alignRight="@+id/tipTxt"
                android:layout_alignEnd="@+id/tipTxt" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:text="-"
                android:id="@+id/minusBtn"
                android:clickable="true"
                android:enabled="true"
                android:layout_alignBottom="@+id/splitInTxt"
                android:layout_toLeftOf="@+id/splitInTxt" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/ tipOutTxt "
                android:editable="false"
                android:clickable="false"
                android:gravity="center_vertical"
                android:text="$0.00"
                android:textAlignment="center"
                android:layout_alignBottom="@+id/textView5"
                android:layout_centerHorizontal="true" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Tip"
                android:id="@+id/textView5"
                android:layout_above="@+id/totalTxt"
                android:layout_toRightOf="@+id/tipOthr" />
            </RelativeLayout>
        </LinearLayout>
        </ScrollView>
        </RelativeLayout>

要使用scrollview修复页眉和页脚,您可以参考此链接http://www.javacodegeeks.com/2013/10/android-fixed-header-and-footer-with-scrollable-content-layout-example.html

答案 1 :(得分:0)

我找出了RelativeLayout中使用的Scrollview可能存在的问题。

您只需使用RelativeLayout,如:

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

使用android:layout_alignParentEnd="true"和没有任何意义  android:layout_alignParentTop="true"在同一时间。

如果有帮助,请告诉我。 :)

修改:将ScollView身高设置为wrap_content

答案 2 :(得分:0)

// Try this way,hope this will help you to solve your problem...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:gravity="center"
    android:orientation="vertical"
    tools:context="com.example.tipcalculator.app.MainActivity">

    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        ads:adUnitId="*adId*"
        ads:adSize="BANNER" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:fillViewport="true">

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

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="number|numberDecimal"
                android:ems="10"
                android:id="@+id/tipTxt"
                android:editable="true"
                android:clickable="true"
                android:hint="Other"
                android:layout_alignBottom="@+id/tipOthr"
                android:layout_toRightOf="@+id/tipOthr"
                android:enabled="false" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="number|numberDecimal"
                android:ems="10"
                android:id="@+id/priceTxt"
                android:editable="true"
                android:clickable="true"
                android:hint="Price"
                android:enabled="true"
                android:layout_above="@+id/splitInTxt"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/splitTxt"
                android:layout_marginBottom="22dp"
                android:editable="false"
                android:clickable="false"
                android:layout_alignParentBottom="true"
                android:layout_alignLeft="@+id/totalTxt"
                android:layout_alignStart="@+id/totalTxt"
                android:gravity="center_vertical"
                android:text="$0.00"
                android:textAlignment="center" />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Calculate Tip"
                android:id="@+id/calcBtn"
                android:enabled="false"
                android:layout_marginBottom="29dp"
                android:clickable="true"
                android:gravity="center_vertical"
                android:layout_above="@+id/totalTxt"
                android:layout_centerHorizontal="true" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/totalTxt"
                android:editable="false"
                android:clickable="false"
                android:gravity="center_vertical"
                android:text="$0.00"
                android:textAlignment="center"
                android:layout_alignBottom="@+id/textView2"
                android:layout_alignLeft="@+id/ tipOutTxt "
                android:layout_alignStart="@+id/ tipOutTxt " />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="10%"
                android:id="@+id/tipTen"
                android:checked="false"
                android:clickable="true"
                android:enabled="true"
                android:layout_above="@+id/tipFtn"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="15%"
                android:id="@+id/tipFtn"
                android:checked="false"
                android:clickable="true"
                android:enabled="true"
                android:layout_above="@+id/tipTnty"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="20%"
                android:id="@+id/tipTnty"
                android:checked="false"
                android:clickable="true"
                android:enabled="true"
                android:layout_above="@+id/tipTxt"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/tipOthr"
                android:checked="false"
                android:layout_above="@+id/calcBtn"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginBottom="29dp"
                android:clickable="true"
                android:enabled="true" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Total"
                android:id="@+id/textView2"
                android:layout_above="@+id/splitTxt"
                android:layout_alignRight="@+id/textView3"
                android:layout_alignEnd="@+id/textView3" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Split"
                android:id="@+id/textView3"
                android:layout_alignBottom="@+id/splitTxt"
                android:layout_alignRight="@+id/textView5"
                android:layout_alignEnd="@+id/textView5" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Split"
                android:id="@+id/textView"
                android:longClickable="false"
                android:singleLine="true"
                android:layout_above="@+id/tipTen"
                android:layout_toLeftOf="@+id/minusBtn" />


            <EditText
                android:layout_width="76dp"
                android:layout_height="wrap_content"
                android:inputType="number"
                android:ems="10"
                android:id="@+id/splitInTxt"
                android:text="1"
                android:enabled="true"
                android:editable="true"
                android:gravity="center|right"
                android:layout_above="@+id/tipTen"
                android:layout_centerHorizontal="true" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:text="+"
                android:id="@+id/plusBtn"
                android:enabled="true"
                android:clickable="true"
                android:layout_alignBottom="@+id/splitInTxt"
                android:layout_alignRight="@+id/tipTxt"
                android:layout_alignEnd="@+id/tipTxt" />

            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:text="-"
                android:id="@+id/minusBtn"
                android:clickable="true"
                android:enabled="true"
                android:layout_alignBottom="@+id/splitInTxt"
                android:layout_toLeftOf="@+id/splitInTxt" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:ems="10"
                android:id="@+id/ tipOutTxt "
                android:editable="false"
                android:clickable="false"
                android:gravity="center_vertical"
                android:text="$0.00"
                android:textAlignment="center"
                android:layout_alignBottom="@+id/textView5"
                android:layout_centerHorizontal="true" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:text="Tip"
                android:id="@+id/textView5"
                android:layout_above="@+id/totalTxt"
                android:layout_toRightOf="@+id/tipOthr" />
        </RelativeLayout>
    </ScrollView>
</LinearLayout>