是否可以指定TableRow的高度?

2024-01-03

我有一个TableLayout与多个TableRow里面的景色。我希望以编程方式指定行的高度。例如。

int rowHeight = calculateRowHeight();
TableLayout tableLayout = new TableLayout(activity);
TableRow tableRow = buildTableRow();
TableLayout.LayoutParams rowLp = new TableLayout.LayoutParams(
                                         LayoutParams.FILL_PARENT, rowHeight);
tableLayout.addView(tableRow, rowLp);

但这不起作用,并且默认为 WRAP_CONTENT。四处挖掘安卓源代码 https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/TableLayout.java,我看到这个TableLayout(由onMeasure()方法触发):

private void findLargestCells(int widthMeasureSpec) {
    final int count = getChildCount();
    for (int i = 0; i < count; i++) {
        final View child = getChildAt(i);
        if (child instanceof TableRow) {
            final TableRow row = (TableRow) child;
            // forces the row's height
            final ViewGroup.LayoutParams layoutParams = row.getLayoutParams();
            layoutParams.height = LayoutParams.WRAP_CONTENT;

似乎任何设置行高的尝试都会被 TableLayout 覆盖。有人知道解决这个问题的方法吗?


好吧,我想我现在已经掌握了窍门。设置行高的方法不是摆弄TableLayout.LayoutParams附于TableRow,但是TableRow.LayoutParams附于any的细胞。只需将一个单元格设置为所需的高度(假设它是最高的单元格)整行都将是该高度。就我而言,我添加了一个额外的 1 像素宽的列,设置为所需的高度,这达到了目的:

View spacerColumn = new View(activity);
//add the new column with a width of 1 pixel and the desired height
tableRow.addView(spacerColumn, new TableRow.LayoutParams(1, rowHeight));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以指定TableRow的高度? 的相关文章

  • 为什么 Android WebView 拒绝用户输入?

    我正在开发一个 Android 应用程序 它使用 WebView 来显示 Facebook 的登录页面 该页面加载精美 我可以选择用户名 密码文本框 但在其中输入内容将不起作用 也就是说 它们肯定有输入焦点 它们有橙色焦点突出显示框和闪烁的
  • 关于 inflater.inflate Android 文档的困惑

    我正在研究此链接中的片段 http developer android com guide components fragments html http developer android com guide components frag
  • 如何从我的班级访问活动 UI?

    我有一个活动创建我的类的对象实例 file MyActivity java public class MyActivity extends Activity TextView myView TextView findViewById R i
  • 如何列出我的应用程序以供下载文件?

    我想通过我的应用程序从浏览器下载文件 我正在尝试将我的应用程序列在complete action using对话 它显示其他操作 例如查看文件等 但在下载文件的情况下 它不会显示在对话框中 我怎样才能像图片中那样列出我的应用程序 我在我的活
  • 标准呼叫屏幕上的活动窗口 - 启用按钮

    我想在通话屏幕活动上添加一个小窗口 弹出窗口 谷歌语音 and 世界通话地点和时间 http areacellphone com 2010 04 android worldcallplaceandtime apps know place a
  • 围绕二维坐标系中的特定点缩放

    Below is an image my coordinate system 我想做的是 我想开始围绕画布中的特定点进行缩放 缩放工作正常 但我的问题是我不知道如何计算缩放时移动画布的量 请注意 我我没有使用canvas scale 我只是
  • 如何从 Cursor 获取行 ID

    如何从游标获取行 ID 我不认为 Cursor 直接暴露了这一点 SQLiteDatabase insert 返回新插入行的行 ID 或者在 Android 中 惯例是有一个名为 id 包含表的主自动增量键 所以cursor getLong
  • 任务执行失败 程序类型已存在

    我将这个新库包含到我的依赖项中 compile com github Triggertrap SeekArc v1 1 然后当我构建时出现构建错误 Error Exception in thread queued resource proc
  • 如何修复 Android 7.0 的 Spinner 模式下的 DatePickerDialog?

    我目前正在开发一个简单的项目 其中包含一个包含在 Web 视图中的网站 具有少量交互 以提高网站本身和 Android 移动设备之间的交互性 由于该网站包含用户生日的日期输入字段 因此我希望实现一个与所有设备兼容的旋转格式的日期选择器 我尝
  • 如何在默认浏览器或webview中打开按钮点击url

    我怎样才能打开一个网址webview或者点击按钮后在默认浏览器中 目前 当我单击btn1按钮 它提示我从手机中选择一个浏览器 我想在默认浏览器或其他浏览器中打开此网址webview 这是我的java代码 public class myact
  • 屏幕滚动时 GridView 内的项目会重复

    我使用 GridView 来显示一组用户可以选择的类别 网格的每个项目都由一个 ImageView 和一个 TextView 组成 两者都是从服务器检索的 当触摸一个项目时 另一个活动就会启动 我以为一切都很顺利 直到我注意到当我滚动屏幕时
  • EditText 中的双光标用于输入类型号码/电话(RTL 阿拉伯语)

    我将 EditText 设置为 重力右 以便如果语言是阿拉伯语 则文本从右侧开始 注意 我的应用程序支持 RTL 并且我没有为 EditText 设置 TextDirection 因为这会出现相同的问题 将重力设置为 右 可以完美完成这项工
  • 在 Marshmallow 中获取蓝牙本地 mac 地址

    在 Marshmallow 之前 我的应用程序将通过以下方式获取其设备 MAC 地址BluetoothAdapter getDefaultAdapter getAddress 现在 随着 Marshmallow Android 的回归02
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • 检查应用程序是否首次运行[重复]

    这个问题在这里已经有答案了 我是 Android 开发新手 我想根据应用程序安装后首次运行来设置一些应用程序的属性 有什么方法可以发现应用程序是第一次运行 然后设置其首次运行属性吗 下面是一个使用的例子SharedPreferences实现
  • 如何在NavigationView的菜单项中设置椭圆形?

    我想在 NavigationView 的菜单项中设置 android ellipsize end 在我当前的实现中 当菜单项中的文本太长时 它只是在末尾被剪切 这是我到目前为止所尝试过的
  • QML MouseArea 将事件传播到按钮

    我正在开发一个应用程序 其菜单类似于 Android 版 Gmail 收件箱应用程序菜单 基本上 当您按下按钮打开菜单时 它就会滑入视图 用户可以将其滑开或按菜单上的按钮 对于滑动我使用了代码SwipeArea from kovrov ht
  • 读/写带有特殊字符的.txt文件

    I open Notepad Windows 并写 Some lines with special characters Special 并前往另存为 someFile txt 与Encoding set to UTF 8 在Java中我有
  • android 媒体播放器 - 如何禁用范围请求? (Nexus 7 上的音频流中断)

    我有一个音频流应用程序 它运行本地代理服务器 本地代理服务器与互联网流媒体源建立 http 连接 在本地获取并缓冲流数据 然后 在应用程序内部 我使用 MediaPlayer 连接到本地代理服务器 使用方法 mediaPlayer setD

随机推荐