看不到添加到线性布局的约束布局

时间:2021-04-05 06:08:16

标签: java android

我创建了一个约束布局,将其布局参数设置为 (Match_Parent, Wrap_Content),然后以编程方式将其添加到现有的线性布局中 - 无一例外。 我运行了应用程序,但在屏幕上看不到添加的约束布局。

有人知道为什么吗?

代码如下:

private void addGroups(){
        int i = 0;
        while(true){
            JSONObject group = spm.getObject("grp" + i);

            ConstraintLayout thumbnail = new ConstraintLayout(this);
            thumbnail.setId(View.generateViewId());

            try {
                thumbnail.setLayoutParams(new ViewGroup.LayoutParams(
                        ViewGroup.LayoutParams.MATCH_PARENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT));
                thumbnail.setClickable(true);

                ConstraintSet set = new ConstraintSet();
                set.clone(thumbnail);

                ImageView groupImage = new ImageView(this);
                groupImage.setId(View.generateViewId());
                thumbnail.addView(groupImage, 0);
                groupImage.setLayoutParams(new ConstraintLayout.LayoutParams(50, 50));
                set.connect(groupImage.getId(), ConstraintSet.TOP, thumbnail.getId(), ConstraintSet.TOP, 8);
                set.connect(groupImage.getId(), ConstraintSet.RIGHT, thumbnail.getId(), ConstraintSet.RIGHT, 8);
                set.connect(groupImage.getId(), ConstraintSet.BOTTOM, thumbnail.getId(), ConstraintSet.BOTTOM, 8);
                set.connect(groupImage.getId(), ConstraintSet.BOTTOM, thumbnail.getId(), ConstraintSet.BOTTOM, 0);
                set.setHorizontalBias(groupImage.getId(), 0);
                groupImage.setImageResource(android.R.drawable.alert_light_frame);
                Bitmap img;
                try{
                    img = spm.StringToBitMap(group.getString("image"));
                }catch(Exception e){
                    img = null;
                }
                if(img != null) groupImage.setImageBitmap(img);

                TextView groupName = new TextView(this);
                groupName.setId(View.generateViewId());
                thumbnail.addView(groupName, 1);
                groupName.setLayoutParams(new ConstraintLayout.LayoutParams(0, 42));
                set.connect(groupName.getId(), ConstraintSet.TOP, thumbnail.getId(), ConstraintSet.TOP, 8);
                set.connect(groupName.getId(), ConstraintSet.RIGHT, groupImage.getId(), ConstraintSet.LEFT, 8);
                set.connect(groupName.getId(), ConstraintSet.BOTTOM, thumbnail.getId(), ConstraintSet.BOTTOM, 8);
                set.connect(groupName.getId(), ConstraintSet.BOTTOM, thumbnail.getId(), ConstraintSet.BOTTOM, 8);
                groupName.setText(group.getString("name"));

                set.applyTo(thumbnail);

                System.out.println("Successfully created thumbnail " + i);

            }catch(Exception e){
                System.out.println("Error1 " + e + " ================================================");
                i++;
                continue;
            }

            TNCon.addView(thumbnail, i);
            System.out.println(thumbnail.toString());
            i++;
        }
    }

(spm 是一个管理 SharedPreferances 的类,getObject() 返回一个 JSON,以 JSON 形式的字符串保存在 SP 中 - 所有与 JSON 相关的事情都可以工作。程序基于 JSON 创建约束布局元素我保存了。)

0 个答案:

没有答案