我正在尝试在我在Android 4.0中开发的应用程序的一部分中实现一些窗口垂直滚动(我使用2个相对布局创建的页眉和页脚),我想要做的是允许用户向下滚动页面的某个部分并将一些数据输入到一些编辑文本中,然后通过按下按钮提交(我没有将功能应用于按钮或从编辑文本小部件获取数据的问题)。
但是,当我尝试将某些内容输入到编辑文本中时,滚动视图会突然出现并向上或向下移动并创建空编辑文本和当时屏幕上每个其他窗口小部件的随机副本,或者是可见的或者隐藏在scrollview的标题后面,这意味着它们出现在滚动视图中没有的其他小部件(例如imageview和textview)的前面。
此链接显示了我遇到的问题:
据我所知,scrollview在线性布局中工作,我在xml代码中解决了这个问题,但我不知道下一步该做什么。
有人可以帮忙吗?我真的在努力解决这个问题,我在这个网站上看到的其他类似问题的问题并没有真正帮助我
以下是我的活动页面的xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:id="@+id/container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.example.hello.SecondActivity"
tools:ignore="MergeRootFrame" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="315dp"
android:layout_height="150dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="38dp" />
<!-- Header aligned to top -->
<RelativeLayout
android:id="@+id/header"
android:layout_width="315dp"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center" >
<TextView
android:layout_width="355dp"
android:layout_height="25dp"
android:layout_marginTop="0dp"
android:text="Scroll up to classify the contents of the image"
android:textColor="#000"
android:textSize="14sp" />
</RelativeLayout>
<!-- Footer aligned to bottom -->
<RelativeLayout
android:id="@+id/footer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
/>
</RelativeLayout>
<ScrollView
android:id="@+id/scrollableContents"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/footer"
android:layout_below="@id/header"
android:isScrollContainer="false"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="190dp"
android:text="Humans in image" />
<!-- this next relative layout is to get 2 things on the same line in the linear layout-->
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginTop="30dp"
android:gravity="center" >
<TextView
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerHorizontal="false"
android:text="How many mammals are in the following image?"
/>
<EditText <!-- this is the edit text i am testing with-->
android:id="@+id/editText1"
android:layout_width="105dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:inputType="text"
>
</EditText>
</RelativeLayout>
<Button <!-- back to linear layout with just one widget on each line-->
android:id="@+id/button1"
android:layout_width="95dp"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:layout_centerHorizontal="true"
android:onClick="loadNextImage"
android:text="@string/classify" />
这是android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.hello"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="14" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name="com.example.hello.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.hello.SecondActivity" <!-- this is the corresponding activity-->
android:label="@string/app_name" >
</activity>
</application>
</manifest
请注意,如果我遗漏了某些内容,请告诉我,我会将其添加。