19

ここにコードがあります-

FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) searchPin.getLayoutParams();
params.setMargins(135, 176, 0, 0);
//params.leftMargin = 135; // also not worked 
//params.topMargin = 376;
searchPin.setLayoutParams(params);

どこでも、xmlからその動作-

android:layout_marginLeft="135dp"

理由は何ですか?私は何かが足りないのですか!

-thnx

4

6 に答える 6

17

これを試して:

params.gravity = Gravity.TOP;
于 2012-07-05T15:59:00.563 に答える
12

私はRelativeLayoutのFrameLayout子を持っていたので、フレームワークはFrameLayoutパラメーターをRelativeLayoutにキャストしようとしていたので、この方法で解決しました

FrameLayout mylayout = (FrameLayout) view.findViewById(R.id.mylayout);
ViewGroup.MarginLayoutParams params = (MarginLayoutParams) mylayout.getLayoutParams();
params.setMargins(1, 2, 3, 4);
mylayout.setLayoutParams(params);
于 2012-08-05T23:28:58.737 に答える
4

不足しているのは、要素のパラメーターをプログラムで設定すると、それらのパラメーターが実際に親ビューに提供されるため、要素の配置方法がわかるということです。パラメータは要素自体に戻されません。次のコード例を考えてみましょう。また、レイアウトパラメータは親のタイプであることに注意してください。

LinearLayout linearLayout = new LinearLayout(this);

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
     LinearLayout.LayoutParams.FILL_PARENT, 
     LinearLayout.LayoutParams.WRAP_CONTENT);

layoutParams.setMargins(6,6,6,6);

Button someButton=new Button(this);
someButton.setText("some text");

linearLayout.addView(someButton, layoutParams);
于 2011-11-12T00:41:57.803 に答える
3

あなたはこれを試すことができます

FrameLayout.LayoutParams srcLp = (FrameLayout.LayoutParams)searchPin.getLayoutParams();
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(srcLp.width, srcLp.height, srcLp.gravity);

lp.setMargins(srcLp.leftMargin, srcLp.topMargin, srcLp.rightMargin, srcLp.bottomMargin);

searchPin.setLayoutParams(lp);
于 2014-01-21T13:42:55.860 に答える
2

簡単な解決策-

searchPin = (ImageView) findViewById(R.id.waypts_search_pin);
searchPin.setPadding(135, 176, 0, 0);
于 2011-11-12T10:06:36.490 に答える
-1

FrameLayout.LayoutParamsの代わりにLayoutParamsを使用するだけです

LayoutParams params = (LayoutParams) searchPin.getLayoutParams();
params.setMargins(135, 176, 0, 0);
searchPin.setLayoutParams(params);

これは私のために働いた

于 2012-07-03T15:32:45.487 に答える