• TextView等组件的LayoutParams不能随便用,不然组件不显示


    TableLayout.LayoutParams lpRow = new TableLayout.LayoutParams(
    LinearLayout.LayoutParams.WRAP_CONTENT,
    LinearLayout.LayoutParams.WRAP_CONTENT);
    lpRow.setMargins(1, 0, 1, 1);

    LinearLayout.LayoutParams lpText = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.FILL_PARENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);
    lpText.setMargins(1, 0, 0, 0);

    TableRow tableRow = new TableRow(layVeri.getContext());
    tableRow.setLayoutParams(lpRow);

    TextView tvCode = new TextView(tableRow.getContext());
    tvCode.setText("付月刚1号田地");
    tvCode.setTextSize(20);
    tvCode.setGravity(Gravity.CENTER_VERTICAL);
    tvCode.setPadding(5, 8, 5, 8);
    tvCode.setSingleLine(true);
    tvCode.setEllipsize(TruncateAt.END);
    tvCode.setBackgroundColor(getResources().getColor(R.color.backColor));
    tvCode.setLayoutParams(lpText);

    上面的代码,tvCode没有显示出来,原因是tvCode.setLayoutParams(lpText)这句,

    lpText设置了LinearLayout.LayoutParams 参数,应该是只设置其直接父容器(TableRow)的LayoutParams,

    设置成:TableRow.LayoutParams lpText = new TableRow.LayoutParams(  就可以了。

    由些可以结论,设置组个把的LayoutParams,必须是父容器的LayoutParams.

  • 相关阅读:
    Android之Handler实现延迟执行
    static{}语句块
    (转)git常见错误
    smarty使用
    git简易操作
    angular路由——ui.route
    angular服务二
    angular服务一
    angualr 实现tab选项卡功能
    EF 集合版 状态版的 增加、删除、修改 的实践
  • 原文地址:https://www.cnblogs.com/zmc/p/4311476.html
Copyright © 2020-2023  润新知