使用RelativeLayout的Android ScrollView不起作用

时间:2014-05-14 20:34:42

标签: android android-layout scrollview

我的Android项目有问题。

我创建了一个包含图像列表的视图,在Nexus 5屏幕上我可以看到所有这些图像,但在最小的手机上,这些图像中的一些图像重叠。

所以我决定插入一个ScrollView,但是我看到很多错误。

我发现很多类似的问题,但对我没什么用。

有人可以帮助我吗?

没有ScrollView,这是可以正常工作的代码:

 <?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView01"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="none" >

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff0088ff"
android:clickable="false">



<ImageView
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:id="@+id/imageView"
    android:src="@drawable/icona_pr"
    android:layout_marginLeft="28dp"
    android:contentDescription="@string/icona_pr"
    android:onClick="apriPreliminare"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<ImageView
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:id="@+id/imageView2"
    android:src="@drawable/icona_p"
    android:contentDescription="@string/icona_p"
    android:onClick="apriPesantezza"
    android:layout_above="@+id/imageView3"
    android:layout_alignLeft="@+id/imageView"
    android:layout_alignStart="@+id/imageView" />

  [...]
</RelativeLayout>
</ScrollView>

在Android Studio中,我选择“设计”选项卡查看预览,看到更长的屏幕。在Nexus 5上似乎工作正常,没有任何变化,但在Galaxy S2上,前两个ImageView重叠。

2 个答案:

答案 0 :(得分:1)

这是你的布局

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ScrollView01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fitsSystemWindows="true"
    android:scrollbars="none" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="70dp"
            android:layout_height="70dp" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="70dp"
            android:layout_height="70dp" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="70dp"
            android:layout_height="70dp" />

        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="70dp"
            android:layout_height="70dp" />

        <ImageView
            android:id="@+id/imageView5"
            android:layout_width="70dp"
            android:layout_height="70dp" />

        <ImageView
            android:id="@+id/imageView6"
            android:layout_width="70dp"
            android:layout_height="70dp" />
    </LinearLayout>

</ScrollView>

答案 1 :(得分:0)

ScrollView必须包含您的ONE目标布局,如果是整个布局的父视图,还要添加xmlns标记。

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

    <RelativeLayout android:layout_width="match_parent"
                    android:layout_height="match_parent">

       //Other staff in here

    </RelativeLayout>

</ScrollView>