5

所以我试图让我的活动可滚动,当我把我的 relativelayout 放在滚动视图中时,会发生这种情况:

在此处输入图像描述

这是上面屏幕截图的代码:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/background"
        android:orientation="vertical"
        android:paddingLeft="60dp"
        android:paddingTop="53dp" >

        <ImageView
            android:id="@+id/gearImage"
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_marginTop="70dp"
            android:clickable="true"
            android:contentDescription="@string/gearDescription_string"
            android:src="@drawable/gear" />
    </RelativeLayout>

</ScrollView>

如果我取出滚动视图,结果是正确的,但当然没有我想要的滚动功能:

在此处输入图像描述

现在,有什么办法可以让它看起来像这样:

在此处输入图像描述

这样我仍然可以滚动,但如果它们到达我拥有的背景图像的底部,它只是白色(很难说,因为网页的背景是白色的,但我在第二张图像的底部添加了一个白色矩形显示我的意思)。无论如何,他们没有理由触底。

当然,如果您对如何在不拉伸背景图像的情况下实现滚动视图有任何其他建议,我会很高兴听到这些建议。

谢谢你。

4

5 回答 5

6

退房android:fillViewport。根据文档,这defines whether the scrollview should stretch its content to fill the viewport. 将此行代码添加到您的ScrollView

android:fillViewport="true"

希望这可以帮助。

编辑:

尝试以下操作:

  1. ScrollView片场android:layout_height="fill_parent"
  2. RelativeLayout片场android:layout_height="wrap_content"
于 2012-07-30T16:43:56.660 回答
2

我有同样的问题,这对我有用:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/rel"  
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/login_background"
    android:fillViewport="true"
    >

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
   android:orientation="vertical"
  >
于 2012-09-28T08:59:28.503 回答
1

而不是设置背景将RelativeLayout其设置为您的ScrollView. 因此,您只需将此属性从<RelativeLayout>标记移动到<ScrollView>标记:

android:background="@drawable/background"

这将消除正在发生的拉伸,并且背景不会随着RelativeLayout. 但这不会产生在未缩放背景下方显示白色背景的效果。

于 2012-07-30T16:45:18.703 回答
1

它不起作用的原因是我的图像在像素方面太大了。我猜滚动视图被迫将图像保持在其原始大小,所以它所做的就是这样。它使长度成为原始图像的全长,因为我的滚动视图是垂直的,并沿宽度挤压它,因为我没有滚动视图左右移动。

简单的解决方法是使图像更小。它可以在正常布局内正确调整大小,但不能在滚动视图内调整大小,这真是太奇怪了。

于 2012-08-06T03:18:42.360 回答
0

这为我解决了这个问题

将此行添加到清单文件中的相应活动

android:windowSoftInputMode="adjustResize" 
于 2014-05-07T07:19:25.653 回答