Программно позиционировать виды в RelativeLayout - PullRequest
0 голосов
/ 09 февраля 2012

Я хочу, чтобы мой TextView отображался ниже моего ImageView в RelativeLayout, который входит в GridView.Я пробовал:

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.

Ответы [ 3 ]

1 голос
/ 09 февраля 2012

Проверить этот вопрос .

Когда вы звоните rl.AddView(tv), вы должны включить LayoutParams rl.AddView(tv, lp).

0 голосов
/ 22 февраля 2012

Поскольку мой контент не является динамическим, я решил эту проблему, просто отредактировав свое изображение в Paint и поместив текст под изображением.Затем я сделал это фоном для ImageView.

0 голосов
/ 09 февраля 2012

Вы должны использовать imageView.setLayoutParams (lp) для назначения параметров вашему представлению.

Как установить SetLayoutParams () для ImageView?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...