GridViewに入るRelativeLayoutのImageViewの下にTextViewを表示します。私は試しました:プログラマチックにRelativeLayoutにビューを配置
public override View GetView(int position, View convertView, ViewGroup parent)
{
RelativeLayout rl = new RelativeLayout(context);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.FillParent);
ImageView imageView;
TextView tv;
imageView = new ImageView(context);
imageView.LayoutParameters = new GridView.LayoutParams(250, 250);
imageView.SetScaleType(ImageView.ScaleType.CenterCrop);
imageView.SetPadding(8, 8, 8, 8);
imageView.SetImageResource(thumbIds[position]);
imageView.Id = position;
lp.AddRule(LayoutRules.Below, position);
lp.AddRule(LayoutRules.CenterHorizontal);
tv = new TextView(context);
tv.Text = stringIds[position].ToString();
tv.SetTextSize(Android.Util.ComplexUnitType.Dip, 20);
tv.SetTextColor(Android.Graphics.Color.WhiteSmoke);
tv.LayoutParameters = lp;
rl.AddView(imageView);
rl.AddView(tv);
return rl;
}
しかし、TextViewは常にImageViewの上に表示されます。
私は私がフォローしているかわかりません。両方のビューに同じLayoutParametersを追加するのではなく、TextViewでLayoutParameters(lp)を設定しているだけなので、私はその位置について気にしています。私はImageViewのどこにいてもそれを望んでいます。 – jmease
ああ、申し訳ありませんが、私は間違って質問を読んでいます。私の答えを更新しました。 –
それを試してみてください。私がtv.LayoutParameters = lpを持っていたときとは何か違うことはしていないようです。奇妙なことは、2つの異なるImageViewと2つのTextViewがあることです.2番目のセットは、上のImageViewとその下のTextViewで正しく表示されます。最初のセットは2つのオーバーラップでまだ表示されます。 – jmease