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

ビューのコンテナに応じて、いくつかのタイプのLayoutParamがあります。

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 に答える