2

我刚刚制作了这个 FrameLayout,里面有一张非常大的图片,你可以看到那是一张地图。我想将视图(按钮、图像视图)放在屏幕外,以便用户必须滚动才能在地图上“找到”它们。我正在使用它在地图上滚动:Android: Scrolling an Imageview

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

    <ImageView
        android:id="@+id/map"
        android:layout_width="2500dp"
        android:layout_height="2000dp"
        android:src="@drawable/map" />
</FrameLayout>

当我尝试以编程方式添加按钮或只是将其放入 XML 时,它仅显示它的左侧边距和顶部边距位置与屏幕尺寸一致。(我相信 480 乘 800)。如果我在这些尺寸之外添加例如一个按钮,则视图不会显示,即使向它滚动时也不会显示。FrameLayout 边距不工作的解决方案也不起作用。

添加这个作品:

<Button
        android:id="@+id/one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/one"
        android:layout_marginLeft="420px"
        android:layout_marginTop="240px"
        android:layout_gravity="top"
        android:onClick="click" />

像这样修改它,它不会再显示了,即使向它滚动:

<Button
        android:id="@+id/one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/one"
        android:layout_marginLeft="1290px"
        android:layout_marginTop="940px"
        android:layout_gravity="top"
        android:onClick="click" />

我使用像素还是 dp 都没关系,视图根本不显示。

我不知道为什么会这样,但我很想听听解决方案。任何帮助表示赞赏。

4

1 回答 1

1

这现在不起作用的原因是因为您的 FragmeLayout 宽度和高度在使用时太小,fill_parent并且您试图将按钮添加到它已经结束的位置。

还有你通过使用解决方案Android 真正在做什么:滚动 Imageview只是设置 ImageView 的新滚动位置(你不是在滚动 FragmeLayout 本身)。

您的问题的解决方案是将父级的 layout_width 和 layout_height 设置为 ImageView 的宽度和高度,并使用Android 中的 onTouchListener:将 Imageview 滚动到整个 FrameLayout。

于 2013-07-25T20:48:21.110 回答