Horizo​​ntalScrollView中的Android中心子级

时间:2018-08-02 09:52:46

标签: android center horizontalscrollview

我有一个Horizo​​ntalScrollView,其中有一个ImageView和一个位于ImageView顶部的RelativeLayout。 RelativeLayout获取在运行时动态创建和分配的多个ImageButton。

<HorizontalScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#000000"
    android:fillViewport="true"
    >

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

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

            <ImageView
                android:id="@+id/scene"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:contentDescription="@string/indoor_tour_scene_view"
                android:adjustViewBounds="true"
                >
            </ImageView>

            <RelativeLayout
                android:id="@+id/coordinate_container"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:layout_alignTop="@id/scene"
                >

                <!-- Mapstops will be added programmatically -->

            </RelativeLayout>

        </RelativeLayout>

    </LinearLayout>

</HorizontalScrollView>

在纵向模式下,ImageView在高度上填充视图端口和Horizo​​ntalScrollView,在宽度上重叠,因此您必须向左滚动以查看所有内容。

在横向模式下,高度仍为100%,但由于图像缩放,宽度将小于视口。所以我想在Horizo​​ntalScrollView内将视图居中。

enter image description here

我在RelativeLayout上使用layout_gravity="center"时遇到了一些偏移问题。我发现此博客条目https://content.pivotal.io/blog/centering-a-view-within-a-scrollview说它是一个Android错误,并且按照此处所述添加了解决方法。它根据偏移量起作用,但是现在我的RelativeLayout @+id/coordinate_container填充了整个帧。这太大了,实际上应该与ImageView的大小匹配,因为动态创建的ImageButton位置是相对于ImageView的。

如何使Horizo​​ntalScrollView的子项居中而没有偏移错误,又如何相对于ImageView的内容具有coordinate_container,因此它不能填满整个框架?

0 个答案:

没有答案