setMargins()将不起作用 - Android

时间:2013-01-24 20:34:12

标签: java android textview relativelayout margins

我一直在寻找这个问题的解决方案超过一个小时,但没有一个工作。 :/

我想将TextView的上边距设置为取决于整数位置的值。 但不知何故,利润率不会出现......

public void addElements(int position, String title,int colour, RelativeLayout ld){
            int px = (int) TypedValue.applyDimension(
                    TypedValue.COMPLEX_UNIT_DIP,
                    1, 
                    res.getDisplayMetrics()
            );

            int pos = 168*px;

            LayoutParams params;

            params = new LayoutParams(LayoutParams.MATCH_PARENT,144*px);
            params.setMargins(0, 168, 0, 0);

            TextView tv = new TextView(activity);
            tv.requestLayout();
            tv.setBackgroundResource(colour);
            tv.setText(title);
            tv.setSingleLine(false);
            ld.addView(tv, params);



        }

2 个答案:

答案 0 :(得分:1)

试试这个:

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 144);
    params.setMargins(0, 168, 0, 0);

答案 1 :(得分:0)

LayoutMargins是为ViewGroup保留的,例如RelativeLayout,LinearLayout等。大多数常见的视图(如TextView)使用填充以增加额外的间距。

这应该有效:

tv.setPaddingRelative(0,168,0,0);