【问题标题】:Custom View and ViewGroup自定义视图和视图组
【发布时间】:2011-08-12 20:33:00
【问题描述】:

我已经创建了自己的视图和视图组。 ViewGroup 是一个包含动态 TableView 的 LinearLayout。我添加了两行,但只显示了一个。第一行占据全高。

运行的目标是这个输出:

但我需要这个:

完美地,单元格是方形的,底部是未使用的。 像这样:

我已经上传了风格化的code

我希望有人可以帮助我。

抱歉,我不能直接包含图片,因为:“我们很抱歉,但作为一种垃圾邮件预防机制,不允许新用户发布图片。发布图片获得超过 10 名声望。”

我将图片网址作为文本包含在内,因为:“我们很抱歉,但作为垃圾邮件预防机制,新用户最多只能发布两个超链接。赚取超过 10 名声望才能发布更多超链接。”

谢谢

【问题讨论】:

    标签: android android-layout tablelayout


    【解决方案1】:

    我不知道更多关于通过代码创建表的信息,但是我在从 XMl 文件创建表时也遇到了同样的问题。在那个时候,我通过使用带有填充父选项的线性布局的高度宽度解决了这个问题。 或者你可以使用相对布局而不是线性布局并尝试一下。可能对你有帮助。

    【讨论】:

    • 现在我已经尝试使用 LinearLayout 作为 Row 并且我得到了第一个解决方案(我的帖子上的第二张图片)
    • 好的,很好。现在对于第三张图片,U 必须设置 TableView 的上层的按钮边距。我的意思是采用覆盖整个表格布局的一个线性布局并设置线性布局的下边距。那么也许你可以得到你的第三张图片的第二个解决方案。
    • 然后我使用绝对设计。但是布局必须是自动缩放的。每个单元格必须有一个最大统一的正方形大小。如果我修改 onMeasure 以强制大小。另一行中的单元格大小不同。
    【解决方案2】:

    尝试以这种方式设置权重。

    float rowWeight = 1/noOfColumns;
    TableRow.LayoutParams mCellLayoutParams = new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.FILL_PARENT, rowWeight );
    mCellLayoutParams.setMargins(5, 5, 5, 5);
    

    【讨论】:

    • 我得到与 weight=1 相同的输出
    • 对不起。权重也应该应用于 celllayoutparams。试试上面的代码。
    • 抱歉,第一个版本没有任何变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多