コードは以下ですが、相対レイアウト(linearLayoutの子)を作成する際に問題があります。私は正しく(両方のIDを設定する)正しくそれぞれのlayoutparamsを設定する両方のtextviewsを作成していると思う。相対レイアウト(メインの相対レイアウト内にあります)内にTextViewをレイアウトする際の問題
ただし、最初のtextviewは中央に配置されず、2番目のtextviewは画面に描画されません(menuTitleの下に表示されます)。ここで私がどこに間違っているのか教えてください。 LinearLayout、コード内のRelativeLayoutは、メインのRelativeLayout(setContentView行に記載されている)の内側にあります。すべての私のカスタムクラスは、単純に描画メソッドをオーバーライドして、ビューの周りに白い枠線を描画します。私はこれらのサブクラスでレイアウトパラメータを全く変更していません。(私はいくつかの人々がこれをやっている問題を抱えていることに気付きました)。
これらは動的に作成されるため、XMLの代わりにプログラムによるルートが使用されます。とにかく事前に助けてくれてありがとう!
CustomRelativeLayout subMenuLayout = new CustomRelativeLayout(this);
subMenuLayout.setBackgroundColor(Color.TRANSPARENT);
RelativeLayout.LayoutParams subMenuLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
subMenuLayoutParams.addRule(RelativeLayout.RIGHT_OF, sideMenu.getId());
subMenuLayoutParams.setMargins(0, 0, 200, 0);
subMenuLayout.setLayoutParams(subMenuLayoutParams);
TextView menuItemTitle = new CustomTextView(this);
menuItemTitle.setText("All You Can Eat");
menuItemTitle.setTextSize(30);
menuItemTitle.setBackgroundColor(Color.TRANSPARENT);
menuItemTitle.setTextColor(Color.WHITE);
menuItemTitle.setId(2);
RelativeLayout.LayoutParams menuItemTitleParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
menuItemTitleParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
menuItemTitleParams.setMargins(0, 0, 0, 15);
menuItemTitle.setLayoutParams(menuItemTitleParams);
TextView menuItemDesc = new CustomTextView(this);
menuItemDesc.setText("All you can ribs, chicken, pork and sides you can stomach to eat\nAlso includes dessert!");
menuItemDesc.setTextSize(15);
menuItemDesc.setBackgroundColor(Color.TRANSPARENT);
menuItemDesc.setTextColor(Color.WHITE);
menuItemDesc.setId(3);
RelativeLayout.LayoutParams menuItemDescParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
menuItemDescParams.addRule(RelativeLayout.BELOW, menuItemTitle.getId());
menuItemDesc.setLayoutParams(menuItemDescParams);
subMenuLayout.addView(menuItemTitle);
subMenuLayout.addView(menuItemDesc);
RelativeLayout screenLayout = new RelativeLayout(this);
screenLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
screenLayout.setBackgroundResource(R.drawable.body_bkgd);
screenLayout.addView(sideMenu);
screenLayout.addView(subMenuLayout);
setContentView(screenLayout);
}
2つのtextViewが中央に配置されていない点を除いて、動作していたようです。それらは依然としてRelativeLayoutに左揃えされています。それは正確に中心にされるべきであると思われます... – cspam
あなたはscreenLayout.addView(linearLayout、Gravity.CENTER_HORIZONTAL)のような何かをすると言っていましたか? – cspam
最後のコメントを残してはいけないと思います。「あなたが望む位置パラメータを使ってRelativeLayoutにLinearLayoutを追加してください。再度ありがとう – cspam