1

プログラムで ImageView を追加してから、これに関連する別のものを追加しようとしています。私のコード:

RelativeLayout mLayout = (RelativeLayout) findViewById(R.id.myLayout);
ImageView anchor = new ImageView(getApplicationContext());
anchor.setImageDrawable(getResources().getDrawable(R.drawable.anchor));
anchor.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParams anchorParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
anchorParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
anchorParams.addRule(RelativeLayout.CENTER_VERTICAL);   
mLayout.addView(anchor,anchorParams);
ImageView spinner = new ImageView(getApplicationContext());
spinner.setImageDrawable(getResources().getDrawable(R.drawable.image1));
spinner.setVisibility(View.VISIBLE);
RelativeLayout.LayoutParams spinnerParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
spinnerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
spinnerParams.addRule(RelativeLayout.BELOW,anchor.getId());
mLayout.addView(spinner,spinnerParams);

最初の画像は、私が望む場所 (集中化) ですが、2 番目の画像はアンカーの下には表示されず、代わりに画面の上部、ステータス バーのすぐ下に表示されます。

何か見逃しましたか?

4

3 に答える 3

3

私は、あなたは null を取得すると思いますanchor.getId()。前に、アンカー ビューの Id を設定します。addRule()

于 2012-12-11T15:17:56.057 に答える
1

anchor.setId(int) を使用して anchor.getId() を使用する前に、プログラムでアンカーに ID を与える必要があると思います。

于 2012-12-11T15:18:48.570 に答える
0

何が悪いのか言いにくい、XMLにしてみて追記

LinearLayout myLayout = (LinearLayout) findViewById(R.id.LogoView);

                View hiddenInfo = getLayoutInflater().inflate(R.layout.search,
                        myLayout, false);
                myLayout.removeAllViews();
                myLayout.addView(hiddenInfo);
于 2012-12-11T15:19:12.813 に答える