【问题标题】:setMargins() won't work - AndroidsetMargins() 不起作用 - Android
【发布时间】:2013-01-24 20:34:12
【问题描述】:

我已经为这个问题寻找解决方案一个多小时了,但没有一个有效。 :/

我想根据整数位置将 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);



        }

【问题讨论】:

  • 它不起作用,因为它不显示或一切正常并且边距关闭?
  • “它只是行不通”请更具体
  • 边距不显示

标签: java android textview android-relativelayout margins


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

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

    这应该可行:

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

    【讨论】:

    • 感谢您的回答!我试过了,但它只是添加了一个普通的填充......我想使用边距(因为 TextView 有彩色背景)
    猜你喜欢
    • 2020-01-29
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多