Android ScrollView无法滚动

时间:2012-12-28 21:44:12

标签: android android-layout scrollview

我已经解决了我的问题。我选择了一个标题和一个页脚,它们总是分别位于屏幕的底部和顶部。然后我创建了一个“中心内容”,我将其包含在ScrollView布局中。如果人们有兴趣了解它现在的样子,我已经更新了下面的代码。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:background="#FFFFFF">

    <LinearLayout android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@layout/header"
        android:layout_alignParentTop="true">
        <ImageView android:src="@drawable/logo"
            android:contentDescription="@string/logo_description"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dip"/>
    </LinearLayout>

    <ScrollView android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="350dip"
        android:layout_below="@id/header">
        <LinearLayout android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="20dip" >
            <!--  Email Label -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textColor="#372C24"
                android:text="@string/email"/>
            <EditText android:id="@+id/email_field"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dip"
                android:singleLine="true"
                android:inputType="textEmailAddress"/>
            <!--  Password Label -->
            <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dip"
                android:textColor="#372C24"
                android:text="@string/password"/>
            <EditText android:id="@+id/password_field"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:inputType="textPassword"/>
            <!-- Login button -->
            <Button android:id="@+id/login_button"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dip"
                android:text="@string/login"/>
            <!-- Register button -->
            <Button android:id="@+id/register_button"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="25dip"
                android:text="@string/register_button"/>
        </LinearLayout>
    </ScrollView>

    <LinearLayout android:id="@+id/footer"
        android:layout_width="fill_parent"
        android:layout_height="90dip"
        android:background="@layout/footer"
        android:layout_alignParentBottom="true">
    </LinearLayout>

</RelativeLayout>

5 个答案:

答案 0 :(得分:5)

对我来说,删除android:windowSoftInputMode="adjustPan"文件中<activity>标记的AndroidManifest.xml解决了问题。

答案 1 :(得分:1)

我从AndroidManifest.xml文件中删除了这一行

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

并添加了这一行

android:theme="@android:style/Theme.NoTitleBar"

它已经修复了我的滚动应用程序并使我的应用程序看起来更具视觉吸引力。但是,我不确定这是否是正确的解决方法。

答案 2 :(得分:-1)

对我来说问题是ScrowView中的LinearLayout有android:layout_height =“wrap_content”。

<ScrollView android:id="@+id/scroll_view1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >

<LinearLayout android:id="@+id/layout_inside"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" --> This should not we wrap_content, but specific height.
    android:orientation="vertical" >

答案 3 :(得分:-2)

当用作XML布局的根元素时,ScrollView无法正常工作。 它必须包含在LinearLayout中。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ScrollView android:id="@+id/scroll_view1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true" >

    <LinearLayout android:id="@+id/layout_inside"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

玩得开心! !

答案 4 :(得分:-4)

ScrollView必须将Linearlayout控件作为直接子项,你有相对布局,我认为这可能会导致问题。

检查this链接,同时this。看看他们的布局xmls ..