2

我使用了水平滚动视图,在其中添加了“子视图”。但是在 HZ 滚动视图上,我想安排孩子一些想法,整个屏幕一次显示 3.5 个孩子或 4.5 , 5.5 取决于屏幕大小。child 的一半表示 Scroller 上有更多的 child。

为此,我为子视图使用了不同的尺寸,这取决于密度。但他们仍然是一些在屏幕末尾显示整个孩子的设备。

那么我如何在滚动视图上管理它。请指导我正确的方向。

在此处输入图像描述

4

1 回答 1

2

为此,我为子视图使用了不同的尺寸,这取决于密度。但他们仍然是一些在屏幕末尾显示整个孩子的设备。

这在很多设备中都无法正常工作。HorizontallScrollView假设这些橙色子视图的宽度都相同(尽管不是那么重要),并且您只想在第一次布局时才显示一半,您可以简单地在视图上发布Runnable(在onCreate方法中)以设置它们宽度到适当的尺寸,以便您做出适当的外观:

public void onCreate(Bundle saved) {
    // ... work   
    horizontalScrollView.post(new Runnable() {

            @Override
            public void run() {
                DisplayMetrics dm = getResources().getDisplayMetrics();
                int screenWidth = dm.widthPixels;
                // based on this width, the space between the children and their
                // widths calculate new widths so you get a half clipped
                // children on the right side.
            }
        });
}

但是,如果你真的想确保用户看到额外的内容,我会避免这种情况并简单地设置一个更强大的指示器HorizontalScrollView(覆盖它的dispatchDraw方法并在那里绘制一些东西(也许稍后用 a 隐藏它)) Runnable.

于 2013-01-10T09:33:09.727 回答