设置TableRow下TextView的layout_weight

2023-12-01

这个问题实际上与这篇文章相关以编程方式设置 TextView 的布局权重

根据答案,我只需要如下设置 TextView 布局参数并设置stretchColumn 属性,但是通过将以下代码添加到我的代码中,它会使 textView 从表布局中消失。

TextView tv = new TextView(v.getContext());
tv.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));

所以,这是我的代码,我想动态添加一行 3 列,权重分别为 35%、5% 和 60%。请让我知道我的代码有什么问题。

private void addTableRow(int resIdTitle, String strValue){

        TableRow tr = new TableRow(this);

        // Add First Column
        TextView tvTitle = new TextView(this);
        tvTitle.setText(resIdTitle);
        tvTitle.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT, 0.35f));
        tr.addView(tvTitle);

        // Add 2nd Column
        TextView tvColon = new TextView(this);
        tvColon.setText(" : ");
        tvColon.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT, 0.05f));
        tr.addView(tvColon);

        // Add the 3rd Column
        TextView tvValue = new TextView(this);
        tvValue.setText(strValue);
        tvValue.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
                LayoutParams.WRAP_CONTENT, 0.60f));
        tr.addView(tvValue);

        // Finally add it to the table
        tl.addView(tr, new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT));
        Log.d(TAG, "Row Added");
    }

这是我的 xml 文件,

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">
    <TableLayout
      android:id="@+id/tl_cam_get_param"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:title="@string/strGetParamTitle" 
      android:scrollbars="vertical"       
      android:shrinkColumns="0">
        </TableLayout>
</ScrollView>

我也尝试过将layout_width设置为0,但仍然不起作用。

Thanks,
艺术风格


谢谢大家! 最后,我通过参考以下帖子解决了我的问题。

android:在Tablelayout中使用Tablerow+TextView的两个问题

如何使用可编程方式从 XML 制作 TableLayout?

请参阅下面的我的工作代码。

这是动态添加行的地方。

TableLayout tl = (TableLayout)findViewById(R.id.table_layout);

private void addTableRow(int resIdTitle, String strValue){

    LayoutInflater inflater = getLayoutInflater();
    TableRow tr = (TableRow)inflater.inflate(R.layout.table_row, tl, false);

    // Add First Column
    TextView tvTitle = (TextView)tr.findViewById(R.id.tvTitle);
    tvTitle.setText(resIdTitle);

    // Add the 3rd Column
    TextView tvValue = (TextView)tr.findViewById(R.id.tvValue);
    tvValue.setText(strValue);

    tl.addView(tr);
}

这是table_layout.xml

 <?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1">
    <TableLayout
      android:id="@+id/table_layout"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:title="@string/strGetParamTitle" 
      android:scrollbars="vertical"       
      android:shrinkColumns="0">
    </TableLayout>
</ScrollView>

最后是 table_row.xml。我在这里设置了所有的layout_params。

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android">
   <TextView  
          android:id="@+id/tvTitle"
          android:paddingRight="3dip"
          android:layout_width="0px"
          android:layout_weight="0.35"/>
   <TextView  android:text=":"
          android:layout_width="0px"
          android:layout_weight="0.05"/>
   <TextView
            android:id="@+id/tvValue"
            android:paddingLeft="3dip"
            android:layout_width="0px"
            android:layout_weight="0.6"
          /> 
</TableRow>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置TableRow下TextView的layout_weight 的相关文章

随机推荐

  • 无法通过多处理同时调用多个函数

    我试图弄清楚如何在同一时间多次运行相同的函数 我可以使用基于其他问题的多处理来实现一些东西 但不幸的是它不能按我想要的方式工作 实际上 当我运行它时 我得到类似这样的东西 函数在每个其他函数之后运行 Worker1 0 1 1 1 2 1
  • delphi中的多种形式

    在我的Delphi项目中 我想要一个 设置 按钮 单击该按钮时 会打开第二个表单 我认为这是正确的术语 我本质上想要打开一个新窗口 进行设置 当用户完成更改此新表单上的设置后 我希望单击按钮即可关闭该表单 用户输入的设置也需要能够被第一个
  • UITextView最大高度

    I use a UITextView在我的应用程序中 我根据文本的大小设置它的框架 然而 如果UITextView size height大于 8192 0 文本就会消失 Does UITextView有最大高度吗 EDIT 我很感谢到目前
  • Android TrafficStats.getTotalRxBytes() 低于预期

    我正在尝试获取真实的流量统计数据 但是 TrafficStats getTotalRxBytes 小于每个已安装应用程序的 TrafficStats getUidRxBytes 之和 我通过每 30 秒运行一次这段代码 在 Wi Fi 网络
  • 如何将数据从免安装应用程序恢复到已安装的应用程序?

    应用安装后保留用户状态 https developer android com topic instant apps ux best practices html keep user state after app installation
  • 通过 Swig 在 C++ 和 Lua 之间传递变量

    我正在开发一个包含大量类 150 的 C 项目 每个类都有 10 到 300 个字段左右 我真的希望能够提供一个用于测试目的的脚本接口 以便我可以编写不需要任何重新编译的回调代码 我想在 Lua 中执行此操作 因为我对它的 C API 比对
  • 以编程方式扩展 BIML 文件

    有没有人尝试过以编程方式将 BIML 文件编译成 dtsx 包 我目前正在 C NET 中编写一个应用程序 用户可以在其中更新元数据 更新此数据后 需要重新编译 BIML 文件 因为重新编译时将添加 删除 SSIS 包 在另一个SO问题中
  • 使用“rle”函数和“dplyr”“group_by”命令来映射分组变量

    我有一个包含三列的数据框 其信息类似于下面给出的数据框 现在我希望根据列中的信息提取信息搜索模式a 基于少数开发人员 thelatemail 和 David T 的支持 我能够识别该模式rle函数 请看这里 使用 rle 函数识别模式 现在
  • 正则表达式 match() 在 FF/Chrome 中有效,但在 IE 8 中无效

    我有以下 jQuery 调用 它在 FF Chrome 中返回匹配项 但在 IE 8 中返回 null 这是小提琴如果您想亲自尝试一下 这是不可解决的 不灵活的 任性的代码 var m somediv text match d d sof
  • 如何锁定 InnoDB 表以防止在复制该表时进行更新?

    我想暂时锁定一个表以防止其他并发进程对其进行更改 原因是该表将被复制到临时表 进行更改 然后复制回来 实际上原始表被删除 新表被重命名 然后 在所有这些完成之后 我想解锁该表 并希望在锁定恢复期间尝试进行任何操作 我还需要能够从已锁定的表中
  • Odoo 9继承js文件

    我需要更改标题addons web static src js web client js this set title part zopenerp Odoo 是否可以在新的自定义模块中继承js文件并将 Odoo 更改为 Odoo 9 您可
  • Delphi IDE 不可见

    我双击Delphi上的图标desktop 但是IDE没有出现 展望Task Manager列出BDS exe出现在Processes列表 而它应该出现在Applications列表 有谁知道为什么会发生这种情况 注 IDE我目前使用的版本是
  • 如何在java中检查用户是否属于某个AD组

    我知道这一定是一个非常简单的问题 但我是 java 新手 发现很难获得我需要的确切代码 我需要做的是从 Windows 获取当前登录的用户名 并检查该用户是否属于需要在某些配置文件中定义的特定 AD 用户组 在C 中很容易做到 但我不知道如
  • 如何判断一个点是在线的右侧还是左侧

    我有一组要点 我想将它们分成两组不同的组 为此 我选择两点 a and b 并在它们之间画一条假想线 现在我想将这条线左边的所有点放在一组中 将这条线右边的点放在另一组中 我如何判断任何给定点z是在左边还是在右边 我试图计算之间的角度a z
  • 使用 DBCP 池以服务器模式远程连接到 H2 数据库

    我正在尝试创建一个嵌入式 H2 服务器 我也可以远程访问该服务器并使用 Tomcat DBCP 池 这是我生成 dataSource 的代码 Produces ApplicationScoped public DataSource getD
  • 节省消息中的大文件

    我使用 thrift 通过 tcp 进行二进制协议 用于发送和读取文件 最大大小为 64MB 节俭能做到这一点吗 我曾想过使用 struct SomeMessage 1 byte data 节俭的效率如何 编组 解组 通过电线发送 Thri
  • pandas python 中字符串的精确匹配

    我在数据框中有一列 例如 df A 0 Good to 1 Good communication EI email protected 1 SAP ECC Project System EI ram va email protected 2
  • 带有 codeigniter 的移动和桌面 Web 应用程序

    我想为移动和桌面构建我的项目的两个版本 我正在使用 codeigniter 2 0 2 正在寻找一种让项目的移动和桌面版本共享相同模型 控制器 库和助手的方法 我还设置了一个子域 m xyz com 来指向 public html 文件夹上
  • 如何获取列表中字符串的公共前缀[重复]

    这个问题在这里已经有答案了 我需要知道如何识别列表中字符串的前缀 例如 list nomad normal nonstop noob 它的答案应该是 no 因为列表中的每个字符串都以 no 开头 我想知道是否有一种方法可以同时迭代列表中字符
  • 设置TableRow下TextView的layout_weight

    这个问题实际上与这篇文章相关以编程方式设置 TextView 的布局权重 根据答案 我只需要如下设置 TextView 布局参数并设置stretchColumn 属性 但是通过将以下代码添加到我的代码中 它会使 textView 从表布局中