以编程方式在行中允许两个成对的TextView与多行TextView重叠吗?

沙欣·扎赫迪(Shaheen Zahedi)

我设法通过添加相对布局的to_end_of来实现这一点,但是长文本似乎也有问题 在此处输入图片说明

这是执行此操作的代码:

        RelativeLayout.LayoutParams keyParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        keyParams.addRule(RelativeLayout.ALIGN_PARENT_END);

        RelativeLayout.LayoutParams valueParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
        valueParams.addRule(RelativeLayout.ALIGN_PARENT_START);



        for (Map.Entry<String, String> item : model.getCompanyProperties().entrySet()) {
            RelativeLayout layout = new RelativeLayout(this);
            TextView keyText = new TextView(this);
            keyText.setLayoutParams(keyParams);
            keyText.setText(item.getKey());
            keyText.setSingleLine(false);


            TextView valueText = new TextView(this);
            valueText.setGravity(Gravity.START);
            valueText.setTextSize(18);
            valueText.setText(item.getValue());
            valueParams.addRule(RelativeLayout.START_OF, keyText.getId());
            keyParams.addRule(RelativeLayout.END_OF, valueText.getId());
            valueText.setLayoutParams(valueParams);


            layout.addView(keyText);
            layout.addView(valueText);
            repoPropertiesLayout.addView(layout,
                    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
        }

    }
沙欣·扎赫迪(Shaheen Zahedi)

最后,我设法通过设置权重来同时查看和创建来克服这种情况LinearLayout,这是代码:

 LinearLayout layout = new LinearLayout(this);
 layout.setOrientation(LinearLayout.HORIZONTAL);
 layout.setGravity(Gravity.END);
 TextView valueText = new TextView(this);
 valueText.setText(item.getValue());
 layout.addView(valueText);
 TextView keyText = new TextView(this);
 keyText.setText(item.getKey());
 LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                0,
                LinearLayout.LayoutParams.WRAP_CONTENT,
                1.0f
        );
 valueText.setLayoutParams(param);
 keyText.setLayoutParams(param);
 layout.addView(keyText);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章