在 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>
找到了解决方案,但我不明白为什么它会起作用。我将编辑器中的选定设备更改为自定义设备,它才开始工作。我想我的编辑器不知何故被冻结了,这就是它不滚动的原因。
我从来没有开发过超过屏幕尺寸的应用程序,因此很挣扎。
感谢大家的帮助,非常感谢您的回复。
我正在开发一个使用 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>
找到了解决方案,但我不明白为什么它会起作用。我将编辑器中的选定设备更改为自定义设备,它才开始工作。我想我的编辑器不知何故被冻结了,这就是它不滚动的原因。
我从来没有开发过超过屏幕尺寸的应用程序,因此很挣扎。
感谢大家的帮助,非常感谢您的回复。