在Android Studio中动态列出按钮(相对布局)

wfish454教程

所以我在活动上有一个相对的布局,我试图根据文本文件中的数据动态实例化按钮。正在正确读取数据,并且正在实例化每个按钮,但是只有第一个按钮正确地实例化,所有其他按钮都在相同位置的第一个按钮上方实例化,彼此重叠。我正在使用的代码:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.relLayout);
            Resources r = getResources();
            float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 400, r.getDisplayMetrics());
            int prevId = 0;
            for(int i = 0; i < data.size(); i++) {
                Button btn = new Button(this);
                btn.setText(data.get(i).substring(0, data.get(i).indexOf(',')));
                btn.setWidth((int) px);
                btn.setId(i);
                RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
                if(i > 0) {
                    params.addRule(RelativeLayout.BELOW, prevId);
                } else {
                    params.addRule(RelativeLayout.BELOW, findViewById(R.id.addClass).getId());
                }
                layout.addView(btn, params);
                prevId = btn.getId();
            }

我可以看到的第一个按钮和其他按钮之间的唯一区别是,第一个按钮设置了相对于我拥有的静态锚点的位置,而其他按钮的对齐方式是由上一个按钮锚定的。(或者,应该是)。它的结尾应为以下格式:


添加类(静态按钮)
dynamicbutton1
dynamicbutton2

用户名

我不确定这是否可以解决您的问题,但是您可以尝试。删除prevID并将其放在i-1的当前值下。然后只需测试是否i == 0。对我来说,这是一种不太笨拙的方式。

并将按钮添加到视图(如果不是)中,以确保对参数的更改已生效。

//int prevId = 0;
    for(int i = 0; i < data.size(); i++) {
        Button btn = new Button(this);
        btn.setText(data.get(i).substring(0, data.get(i).indexOf(',')));
        btn.setWidth((int) px);
        btn.setId(i+1);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
            if(i = 0) {
                params.addRule(RelativeLayout.BELOW, findViewById(R.id.addClass).getId());
                layout.addView(btn, params);

            } else {
                params.addRule(RelativeLayout.BELOW, i);
                layout.addView(btn, params);
            }

        }

阅读有关此内容后,如何以编程方式为视图分配ID?看来,该ID必须大于零。因此,我将代码更改为i + 1,那么以前的ID将为i。

另一个问题是这些ID可能不是唯一的,因为从XML中解析出的其他ID可能在按钮范围内。这意味着按钮完全相对于另一个元素定位。

这个答案深入探讨了如何避免这种重复。https://stackoverflow.com/a/13241629/3956566

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xamarin Forms - 使用资源/布局中的相对布局的 Android 按钮

来自分类Dev

android相对布局问题与按钮

来自分类Dev

如何在相对Android布局中对单选按钮进行Radiogroup

来自分类Dev

如何在相对Android布局中对单选按钮进行Radiogroup

来自分类Dev

将按钮动态添加到相对布局或扩展线性布局android

来自分类Dev

将按钮动态添加到相对布局或扩展线性布局android

来自分类Dev

在Android中缩放布局(相对布局)

来自分类Dev

在Android中缩放布局(相对布局)

来自分类Dev

相对布局在 Android Studio 中不起作用始终在设计视图中显示约束布局

来自分类Dev

如何根据用户的输入在android studio中动态创建布局?

来自分类Dev

获取Android Studio中表格布局中的所有按钮

来自分类Dev

Android Studio中按钮和文本视图中的重叠布局

来自分类Dev

Android Studio。XML布局宽度在此相对布局中被压缩。

来自分类Dev

相对布局android中的视图对齐

来自分类Dev

FrameLayout中的Android按钮布局

来自分类Dev

在Android Studio中从相对布局移动元素时,如何停止其他元素的移动?

来自分类Dev

如何动态更改线性布局中静态创建的布局的顺序?(Android Studio)

来自分类Dev

在Android Studio中动态创建按钮时遇到麻烦

来自分类Dev

在 Android Studio 中动态添加和保存按钮

来自分类Dev

Android Studio 中线性布局的动态数量

来自分类Dev

android相对布局设计

来自分类Dev

Infalting相对布局Android

来自分类Dev

Android相对布局问题

来自分类Dev

Android相对布局

来自分类Dev

Android相对布局定位

来自分类Dev

Android相对布局中心

来自分类Dev

相对布局android loopable

来自分类Dev

Android 相对布局位置

来自分类Dev

Android:相对布局

Related 相关文章

热门标签

归档