如何在scroll中更改scrollview的高度以不重叠线性布局?

时间:2013-07-17 00:30:40

标签: android scroll android-linearlayout

我有这个xml布局,但问题是,在滚动视图中,它的高度跨越整个屏幕并重叠底部线性布局(在它上面绘图)。有没有办法,我可以让滚动视图高度仅达到底部的线性布局?我希望底部的2个按钮与屏幕底部对齐。

由于

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".ActivityProfile" >

    <ScrollView 
         android:id="@+id/scrollView1"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >

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


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

                <ImageView
                    android:id="@+id/picture_avatar"
                    android:layout_width="90dp" 
                    android:layout_height="310dp"
                    android:background="#bdbdbd"
                    android:src="@drawable/no_avatar" />

                <TextView
                    android:id="@+id/textview_status"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:text="" />

            </LinearLayout>

            <TextView
                android:id="@+id/textview_fullname"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="30sp"
                android:text="" />

            <TextView
                android:id="@+id/textview_email"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="email"
                android:text="" />

            <TextView
                android:id="@+id/textview_phone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="phone" 
                android:text="" />

            <TextView
                android:id="@+id/textview_website"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="web"
                android:text="" />

            <TextView
                android:id="@+id/textview_bio"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="7dp"
                android:layout_marginBottom="7dp"
                android:text="" />

            <TextView
                android:id="@+id/textview_lastactive"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="" />

            <TextView
                android:id="@+id/textview_datejoined"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="" />

            <TextView
                android:id="@+id/textview_dateleft"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="" />

        </LinearLayout>

    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button_logout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="CloseActivity"
            android:text="@+string/back" />

        <Button
            android:id="@+id/button_exit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:onClick="GoToEditProfile"
            android:text="@+string/edit" />

    </LinearLayout>

</RelativeLayout>

2 个答案:

答案 0 :(得分:5)

将其更改为LinearLayout并使用layout_weight:

<?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/scrollView1"
     android:layout_width="match_parent"
     android:layout_height="0dp" 
     android:layout_weight="1" >

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


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

            <ImageView
                android:id="@+id/picture_avatar"
                android:layout_width="90dp" 
                android:layout_height="310dp"
                android:background="#bdbdbd"
                android:src="@drawable/no_avatar" />

            <TextView
                android:id="@+id/textview_status"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:text="" />

        </LinearLayout>

        <TextView
            android:id="@+id/textview_fullname"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30sp"
            android:text="" />

        <TextView
            android:id="@+id/textview_email"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:autoLink="email"
            android:text="" />

        <TextView
            android:id="@+id/textview_phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:autoLink="phone" 
            android:text="" />

        <TextView
            android:id="@+id/textview_website"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:autoLink="web"
            android:text="" />

        <TextView
            android:id="@+id/textview_bio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="7dp"
            android:layout_marginBottom="7dp"
            android:text="" />

        <TextView
            android:id="@+id/textview_lastactive"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/textview_datejoined"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />

        <TextView
            android:id="@+id/textview_dateleft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="" />

    </LinearLayout>

</ScrollView>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal" >

    <Button
        android:id="@+id/button_logout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="CloseActivity"
        android:text="@+string/back" />

    <Button
        android:id="@+id/button_exit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:onClick="GoToEditProfile"
        android:text="@+string/edit" />

</LinearLayout>

</LinearLayout>
希望能帮到你。

答案 1 :(得分:0)

在线性布局中(在底部)将其添加到位于滚动视图下方

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:orientation="horizontal"
    android:layout_below=""@+id/scrollView1"   <-- this code
>

并将主基础布局更改为linearlayout,以便它不会重叠

<LinearLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ActivityProfile"
android:orientation='horizontal'
>

不要忘记更改最后的标签

</LinearLayout>