在RelativeLayout中的ScrollView

时间:2016-03-29 12:31:48

标签: android android-layout android-studio scrollview relativelayout

我需要在相对布局中进行滚动视图。

当我添加ScrollView时,这是结果http://postimg.org/image/6abxth299/,其中组件仅占用屏幕的一半,当打开此屏幕时,键盘默认出现

<?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:scrollbars="vertical" >
    <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"
        android:layout_centerHorizontal="true"
        android:id="@+id/data_entry_layout">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Post Title"
                android:id="@+id/post_title"
                android:layout_alignBaseline="@+id/post_title_input"
                android:layout_alignBottom="@+id/post_title_input"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:textSize="26px"/>

            <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/post_title_input"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                android:layout_toRightOf="@+id/post_title"
                android:layout_toEndOf="@+id/post_title"
                android:inputType="textCapSentences"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Post Description"
                android:id="@+id/post_description"
                android:layout_below="@+id/post_title_input"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_marginTop="39dp"
                android:textSize="26px"/>

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textMultiLine|textCapSentences"
                android:ems="10"
                android:id="@+id/editText"
                android:layout_marginTop="16dp"
                android:layout_below="@+id/post_description"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"/>

            <ImageButton
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/imageButton1"
                android:layout_below="@+id/editText"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:baselineAlignBottom="false"
                android:contextClickable="true"
                android:src="@drawable/image_button_icon"
                android:onClick="galleryIntent"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Cancel"
                android:id="@+id/cancel"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@id/imageButton1"

               />

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Submit"
                android:id="@+id/submit"
                android:layout_alignTop="@+id/cancel"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                android:layout_below="@id/imageButton1"/>

    </RelativeLayout>
</ScrollView>

4 个答案:

答案 0 :(得分:1)

scrollview的第一个dirsct子项的高度,无论是相对还是线性布局都应该是包含内容而不是父级。同样,内在的孩子应该具有特定的体重或身高,并且不像你为imageButton所做的那样匹配父母。

答案 1 :(得分:0)

我认为ScrollView在Relativelayout中不起作用。最好使用LinearLayout。

答案 2 :(得分:0)

尝试在此活动中 AndroidManifest 下面添加以删除默认情况下出现的键盘

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"

并使用android:layout_height="wrap_content"进行滚动视图,使用 LinearLayout 垂直方向布局进行此类使用。

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

    <RelativeLayout
        android:id="@+id/data_entry_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_centerHorizontal="true"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">
        <RelativeLayout
            android:id="@+id/Rel12345"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        <TextView
            android:id="@+id/post_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/post_title_input"
            android:layout_alignBottom="@+id/post_title_input"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:text="Post Title"
            android:textSize="26px" />

        <EditText
            android:id="@+id/post_title_input"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_toEndOf="@+id/post_title"
            android:layout_toRightOf="@+id/post_title"
            android:inputType="textCapSentences" />

        <TextView
            android:id="@+id/post_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/post_title_input"
            android:layout_marginTop="39dp"
            android:text="Post Description"
            android:textSize="26px" />

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/post_description"
            android:layout_marginTop="16dp"
            android:ems="10"
            android:inputType="textMultiLine|textCapSentences" />

        <ImageButton
            android:id="@+id/imageButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/editText"
            android:baselineAlignBottom="false"
            android:contextClickable="true"
            android:onClick="galleryIntent"
            />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/Rel1234"
            android:layout_below="@id/Rel12345"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true">

            <Button
                android:id="@+id/cancel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:text="Cancel"/>

            <Button
                android:id="@+id/submit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_alignTop="@+id/cancel"
                android:text="Submit" />
        </RelativeLayout>
    </RelativeLayout>
</ScrollView>

并尝试在AndroidManifes下面添加以删除默认情况下的键盘

android:windowSoftInputMode="stateAlwaysHidden|adjustResize"