我需要绘制正好是屏幕宽度两倍的 UI,在 HorizontalScrollView 中滚动。
伪代码是这样的:
<HorizontalScrollView width=device_screen>
<myUI width=device_screen*2>...</myUI>
</HorizontalScrollView>
我不想为市场上的每个设备设置精确的 px/dp 宽度,但我没有找到一种方法来为任何设备相对于其父设备以声明方式设置视图宽度。
它有什么办法吗?
您可以使用 WindowManager 类获取当前显示信息,乘以 2 并将其分配给视图的宽度。像这样的东西:
WindowManager wm = getWindowManager();
Display d = wm.getDefaultDisplay();
int view_width = 2*d.getWidth();
这与这个问题相同。有两个开源库可以实现您需要的最佳答案中包含的内容。它将允许您根据需要添加任意数量的水平页面视图。
但是,如果您不需要视图并且可以使用 Fragments,您应该使用 ViewFliper 等。