可滚动布局无法正常工作

时间:2015-02-18 17:54:38

标签: android eclipse android-layout

我是android的初学者。我正在使用eclipse创建一个示例电话簿。我的布局中有很少的编辑文本和一个关闭按钮。但是当我运行项目时,我无法看到布局底部的按钮,所以我将主线性布局包含在Scrollview中。但线性布局后的高度变得更大。我试图在xml文件中调整它的大小但是在调整大小后它不能正常工作它会自动调整大小到以前的大小。如果有人可以帮助我,我的代码就在这里。非常感谢小帮助。

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="466dp"
android:layout_gravity="center_vertical" >

<LinearLayout
    android:id="@+id/LinearLayout2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/back"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:scrollbarAlwaysDrawVerticalTrack="false"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical"
    tools:context="com.nadusha.phonebook.MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_marginBottom="10dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Contact Info"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

</LinearLayout>



<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFFFFF" />

</LinearLayout>

<LinearLayout
    android:id="@+id/nameTextLayout"
    android:orientation="horizontal"
    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <EditText
        android:id="@+id/nameTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" />
    <requestFocus />

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mobile"
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:textColor="#FFFFFF"/>

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/mobileNoTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="phone" >


    </EditText>

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Home"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFFFFF" />
</LinearLayout>

<LinearLayout

    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/homeNoTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="phone" />

</LinearLayout>



<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="E-Mail "
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFFFFF" />

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/emailTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textEmailAddress" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/saveBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save" 
        android:textColor="#FFFFFF"/>

    <Button
        android:id="@+id/cancelBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel"
        android:textColor="#FFFFFF" />


       <Button
        android:id="@+id/viewBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ViewContact"
        android:textColor="#FFFFFF" />

</Linearlayout> 
</LinearLayout>

3 个答案:

答案 0 :(得分:0)

您需要将ScrollView layoutWeight设置为1并将其高度设置为0.这将确保您的滚动视图仅占用屏幕上的剩余空间。以下是我的应用示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <ScrollView
        android:id="@+id/scrollView2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:clickable="false"
        android:fadeScrollbars="false"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:padding="5dp">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:padding="5dp">

                <TextView
                    android:id="@+id/menoLabel"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:text="@string/emergencySMSMeno"/>

                <EditText
                    android:id="@+id/menoEdit"
                    style="@style/editText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:inputType="textPersonName"
                    android:textColor="#000"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:padding="5dp"
                android:weightSum="3">

                <TextView
                    android:id="@+id/pohlavieLabel"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:text="@string/emergencySMSPohlavie"/>

                <Spinner
                    android:id="@+id/spinnerPohlavie"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"/>

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:padding="5dp">

                <TextView
                    android:id="@+id/vekLabel"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:text="@string/emergencySMSVek"/>

                <EditText
                    android:id="@+id/vekEdit"
                    style="@style/editText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:textColor="#000"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:padding="5dp">

                <TextView
                    android:id="@+id/vahaLabel"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:text="@string/emergencySMSVaha"/>

                <EditText
                    android:id="@+id/vahaEdit"
                    style="@style/editText"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:ems="10"
                    android:inputType="numberDecimal"
                    android:textColor="#000"/>
            </LinearLayout>

            <TextView
                android:id="@+id/alergieLabel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:padding="5dp"
                android:text="@string/emergencySMSAlergie"/>

            <EditText
                android:id="@+id/alergieEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="text"
                android:textColor="#000"/>

            <TextView
                android:id="@+id/chorobyLabel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:padding="5dp"
                android:text="@string/emergencySMSChoroby"/>

            <EditText
                android:id="@+id/chorobyEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="text"
                android:textColor="#000"/>

            <TextView
                android:id="@+id/zraneniaLabel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:padding="5dp"
                android:text="@string/emergencySMSZranenie"/>

            <EditText
                android:id="@+id/zraneniaEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:inputType="textMultiLine"
                android:lines="3"
                android:textColor="#000"/>

            <TextView
                android:id="@+id/polohaLabel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="2dp"
                android:padding="5dp"
                android:text="@string/emergencySMSAktualnaPoloha"/>

            <EditText
                android:id="@+id/polohaEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="text"
                android:textColor="#000"/>

        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dp">

        <Button
            android:id="@+id/odoslatButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/send"
            android:layout_weight="1"/>

        <Button
            android:id="@+id/zrusitButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/emergencySMSZrusit"
            android:layout_weight="1"/>
    </LinearLayout>

</LinearLayout>

它显示了scrollView和两个按钮。我不确定你想做什么,但据我所知,你做错了。 ScrollView只能使用一个子元素,但您已将scrollview设置为主要父级,但之后您将更多子项放入其中。

另外你又犯了一个错误。如果他们只有一个孩子,你不需要使用线性布局(在大多数情况下)。这对性能不利。

答案 1 :(得分:0)

您可以尝试更改

android:layout_height="466dp"

android:layout_height="wrap_content"

android:layout_height="match_parent"

答案 2 :(得分:0)

将属性layout_height的值更改为match_parent,以便ScrollView占用整个屏幕,从而启用滚动。正确的代码是

<ScrollView 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:layout_gravity="center_vertical" >

<LinearLayout
    android:id="@+id/LinearLayout2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/back"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:scrollbarAlwaysDrawVerticalTrack="false"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical"
    tools:context="com.nadusha.phonebook.MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_marginBottom="10dp"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Contact Info"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

</LinearLayout>



<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFFFFF" />

</LinearLayout>

<LinearLayout
    android:id="@+id/nameTextLayout"
    android:orientation="horizontal"
    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    >

    <EditText
        android:id="@+id/nameTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPersonName" />
    <requestFocus />

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Mobile"
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:textColor="#FFFFFF"/>

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/mobileNoTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="phone" >


    </EditText>

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Home"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFFFFF" />
</LinearLayout>

<LinearLayout

    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/homeNoTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="phone" />

</LinearLayout>



<LinearLayout
    android:layout_marginBottom="8dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="E-Mail "
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="#FFFFFF" />

</LinearLayout>

<LinearLayout
    android:layout_marginBottom="15dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/emailTxt"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textEmailAddress" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/saveBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save" 
        android:textColor="#FFFFFF"/>

    <Button
        android:id="@+id/cancelBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cancel"
        android:textColor="#FFFFFF" />


       <Button
        android:id="@+id/viewBtn"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ViewContact"
        android:textColor="#FFFFFF" />

</Linearlayout> 
</LinearLayout>