在 android 工作室中滚动滚动视图

Scrolling a scroll view in android studio

我正在开发一个使用 ScrollView 的小型 android 应用程序。我在 ScrollView 中有一个 RelativeLayout 我已经填满了项目。现在我想向下滚动以创建更多空间来添加更多项目,但 Android Studio 不允许我这样做,即使滚动视图的滚动条可见。有办法吗?

这是 xml 代码,尽管我喜欢在设计视图中工作:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_new_reminder"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp"
    tools:context="com.steveops.locationreminder.NewReminderActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="700dp"
            android:padding="5dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="11dp"
            android:layout_marginStart="11dp">

            <TextView
                android:text="REMINDER NAME"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPersonName"
                android:text="Name"
                android:ems="10"
                android:id="@+id/editText2"
                android:layout_below="@+id/textView"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <TextView
                android:text="ACTIVATE ON"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView5"
                android:layout_below="@+id/editText2"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:text="M"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView5"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:id="@+id/checkBox7" />

            <CheckBox
                android:text="T"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView5"
                android:layout_toRightOf="@+id/checkBox7"
                android:layout_toEndOf="@+id/checkBox7"
                android:id="@+id/checkBox8" />

            <CheckBox
                android:text="W"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox8"
                android:layout_toRightOf="@+id/checkBox8"
                android:layout_toEndOf="@+id/checkBox8"
                android:id="@+id/checkBox9" />

            <CheckBox
                android:text="T"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox9"
                android:layout_toRightOf="@+id/checkBox9"
                android:layout_toEndOf="@+id/checkBox9"
                android:id="@+id/checkBox10" />

            <CheckBox
                android:text="F"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox10"
                android:layout_toRightOf="@+id/checkBox10"
                android:layout_toEndOf="@+id/checkBox10"
                android:id="@+id/checkBox11" />

            <CheckBox
                android:text="S"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox11"
                android:layout_toRightOf="@+id/checkBox11"
                android:layout_toEndOf="@+id/checkBox11"
                android:id="@+id/checkBox12" />

            <CheckBox
                android:text="S"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox12"
                android:layout_toRightOf="@+id/checkBox12"
                android:layout_toEndOf="@+id/checkBox12"
                android:id="@+id/checkBox13" />

            <TextView
                android:text="BETWEEN"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView7"
                android:layout_below="@+id/checkBox7"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <TimePicker
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/timePicker"
                android:layout_below="@+id/textView7"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_toStartOf="@+id/checkBox12"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true" />

        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

正如您在屏幕截图中看到的,ScrollView 的滚动条是可见的,但我无法向下滚动以创建足够的 space 来添加,例如,一个新的时间选择器。我希望我说得有道理。

使用垂直方向的线性布局,而不是滚动视图中的相对布局。

试试这个代码

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="5dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="11dp"
            android:layout_marginStart="11dp"
            android:id="@+id/kk">

            <TextView
                android:text="REMINDER NAME"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView" />

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPersonName"
                android:text="Name"
                android:ems="10"
                android:id="@+id/editText2"
                android:layout_below="@+id/textView"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <TextView
                android:text="ACTIVATE ON"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView5"
                android:layout_below="@+id/editText2"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <CheckBox
                android:text="M"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView5"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:id="@+id/checkBox7" />

            <CheckBox
                android:text="T"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/textView5"
                android:layout_toRightOf="@+id/checkBox7"
                android:layout_toEndOf="@+id/checkBox7"
                android:id="@+id/checkBox8" />

            <CheckBox
                android:text="W"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox8"
                android:layout_toRightOf="@+id/checkBox8"
                android:layout_toEndOf="@+id/checkBox8"
                android:id="@+id/checkBox9" />

            <CheckBox
                android:text="T"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox9"
                android:layout_toRightOf="@+id/checkBox9"
                android:layout_toEndOf="@+id/checkBox9"
                android:id="@+id/checkBox10" />

            <CheckBox
                android:text="F"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox10"
                android:layout_toRightOf="@+id/checkBox10"
                android:layout_toEndOf="@+id/checkBox10"
                android:id="@+id/checkBox11" />

            <CheckBox
                android:text="S"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox11"
                android:layout_toRightOf="@+id/checkBox11"
                android:layout_toEndOf="@+id/checkBox11"
                android:id="@+id/checkBox12" />

            <CheckBox
                android:text="S"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignTop="@+id/checkBox12"
                android:layout_toRightOf="@+id/checkBox12"
                android:layout_toEndOf="@+id/checkBox12"
                android:id="@+id/checkBox13" />

            <TextView
                android:text="BETWEEN"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView7"
                android:layout_below="@+id/checkBox7"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />

            <TimePicker
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/timePicker"
                android:layout_below="@+id/textView7"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_toStartOf="@+id/checkBox12"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true" />

        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

找到了解决方案,但我不明白为什么它会起作用。我将编辑器中的选定设备更改为自定义设备,它才开始工作。我想我的编辑器不知何故被冻结了,这就是它不滚动的原因。

我从来没有开发过超过屏幕尺寸的应用程序,因此很挣扎。

感谢大家的帮助,非常感谢您的回复。