【问题标题】:Dynamically adding view动态添加视图
【发布时间】:2015-06-16 11:44:53
【问题描述】:

我已经搜索了互联网,但还没有找到确切的方法。我大多没有正确查看,所以不要开始转发和其他 cmets。只需将我引导到一个令人反感的帖子或回答我的问题。谢谢。

如何动态地将值添加到 xml 视图并将其添加到活动中。这应该使用从 API 获得的不同值多次完成。

我目前正在做的是(这是在 onPostExecute 的异步线程上):

RelativeLayout rl = new RelativeLayout(mContext);
            rl.setPadding(0, 0, 0, 10);
            ImageView img = new ImageView(mContext);
            img.setLayoutParams(new Toolbar.LayoutParams(Toolbar.LayoutParams.FILL_PARENT, Toolbar.LayoutParams.FILL_PARENT));
            img.setScaleType(ImageView.ScaleType.CENTER_CROP);
            //img.setMaxHeight(300);
            Picasso.with(mContext).load(imageURL[i]).into(img);
            rl.addView(img);
            TextView tv = new TextView(mContext);
            tv.setText(uri[i]);
            tv.setGravity(Gravity.CENTER | Gravity.BOTTOM);
            tv.setTextSize(20);
            tv.setBackgroundColor(Color.parseColor("#80000000"));
            tv.setLayoutParams(new Toolbar.LayoutParams(Toolbar.LayoutParams.FILL_PARENT, Toolbar.LayoutParams.WRAP_CONTENT));
            if(tv.getText()!= null) rl.addView(tv);
            rootView.addView(rl);

有没有更好的方法来做到这一点,所以我有更多的控制权,比如预定义的布局,我只是在其中添加不同的值。 另外我如何使每个视图都可以点击? (添加onClick)

谢谢

【问题讨论】:

标签: android api android-activity dynamic view


【解决方案1】:

首先,在为添加到 RelativeLayout 的内容设置 LayoutParams 时,您需要使用 RelativeLayout.LayoutParams 而不是 Toolbar.LayoutParams。

接下来,您需要确保您创建的 RelativeLayout 为要添加到的容器类型(rootView)设置了正确的布局参数。

使用 setOnClickListener 使每个视图都可点击,如下所示:

view.setOnClickListener(new OnClickListener()
{
    @Override
    public void onClick(View v)
    {

    }
});

【讨论】:

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