0

由于某种原因,我创建的布局的位置(边距)未设置。布局显示在 x=0 和 y=0 处。我究竟做错了什么?

smallPopup = new LinearLayout(this);

LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
p.setMargins(100, 100, 10, 10);

smallPopup.setLayoutParams(p);
smallPopup.setGravity(Gravity.CENTER_VERTICAL);
smallPopup.setHorizontalGravity(Gravity.CENTER_HORIZONTAL);
smallPopup.setBackgroundResource(R.drawable.map_small_popup_overlay);
smallPopup.setPadding(20, 10, 20, 10);

map.addView(smallPopup, p);
4

1 回答 1

2

有几种类型的 LayoutParams,具体取决于您的视图的容器。

如果要在 MapView 中定位元素,则需要使用不支持边距的 MapView.LayoutParams(因为它不扩展 MargingLayoutParams)。

MapView.LayoutParams 扩展了 AbsoluteLayout.LayoutParams,这意味着您可以直接设置 x 和 y 值:

    WebView.LayoutParams p = new WebView.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 100, 100);
于 2012-11-19T18:34:56.947 回答