【问题标题】:Programmatically Position Views in RelativeLayout以编程方式在 RelativeLayout 中定位视图
【发布时间】:2012-03-01 07:55:54
【问题描述】:

我希望我的 TextView 在进入 GridView 的 RelativeLayout 中出现在我的 ImageView 下方。我试过了:

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 之上。

【问题讨论】:

    标签: android xamarin.android


    【解决方案1】:

    由于我的内容不是动态的,我通过简单地在 Paint 中编辑我的图像并将文本放置在图像下方来解决这个问题。然后我把它作为 ImageView 的背景。

    【讨论】:

      【解决方案2】:

      查看this question

      当您调用 rl.AddView(tv) 时,您应该包含 LayoutParams rl.AddView(tv, lp)

      【讨论】:

      • 我不确定我是否遵循。我没有为两个视图添加相同的 LayoutParameters,我只是在 TextView 上设置 LayoutParameters (lp),因为这是我唯一关心的位置。我只想把它放在 ImageView 的任何地方。
      • 哦,对不起,我读错了问题。更新了我的答案。
      • 试过了。似乎与我有 tv.LayoutParameters = lp 时没有什么不同。奇怪的是,现在我有两个不同的 ImageView 和 2 个 TextView,第二组正确显示,ImageView 位于顶部,TextView 位于其下方。第一组仍然出现,两个重叠。
      【解决方案3】:

      你必须使用 imageView.setLayoutParams(lp) 以便将参数分配给您的视图。

      How do you setLayoutParams() for an ImageView?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多