Android:表格单元格的高度应获取上一个单元格的高度

我正在以TableLayout编程方式创建表格行可以由数量+单位(单元格1),成分(单元格2)和删除按钮(单元格3)组成。成分可以长于可用宽度,因此我使用了weight属性并将其设置为1以启用换行符:

setLayoutParams(new TableRow.LayoutParams(0, TableRow.LayoutParams.WRAP_CONTENT, 1f));

这行得通。问题是删除按钮阻止表格行增加高度,因此它被部分隐藏,如下所示:

隐藏行

这是产生一个表行的代码的重要部分:

final TableRow tableRow = new TableRow(getApplicationContext());
tableRow.setTag(INGREDIENT_ENTRY);
tableRow.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));

// Amount and unit
int dp6InPixel = PixelCalculator.convertDpToPixel(getApplicationContext(), 6);
TextView tvAmountAndUnitText = new TextView(getApplicationContext());
tvAmountAndUnitText.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
tvAmountAndUnitText.setText(strAmount + " " + strUnit);
tvAmountAndUnitText.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
tvAmountAndUnitText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f);
tvAmountAndUnitText.setGravity(Gravity.RIGHT);
tvAmountAndUnitText.setTypeface(tvAmountAndUnitText.getTypeface(), Typeface.BOLD);
tvAmountAndUnitText.setPadding(dp6InPixel, 0, dp6InPixel, 0);
tableRow.addView(tvAmountAndUnitText);

// Ingredient
TextView tvIngredientText = new TextView(getApplicationContext());
tvIngredientText.setLayoutParams(new TableRow.LayoutParams(0, TableRow.LayoutParams.WRAP_CONTENT, 1f));
tvIngredientText.setText(strIngredient);
tvIngredientText.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
tvIngredientText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f);
tableRow.addView(tvIngredientText);

// Button
int dp10InPixel = PixelCalculator.convertDpToPixel(getApplicationContext(), 10);
TextView tvIngredientDeleteButton = new TextView(getApplicationContext());
LayoutParams buttonParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT);
buttonParams.setMargins(dp10InPixel, 0, 0, 0);
tvIngredientDeleteButton.setLayoutParams(buttonParams);
tvIngredientDeleteButton.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.black));
tvIngredientDeleteButton.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.lightred));
tvIngredientDeleteButton.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f);
tvIngredientDeleteButton.setPadding(dp6InPixel, dp6InPixel, dp6InPixel, dp6InPixel);
tvIngredientDeleteButton.setText("x");
//more code

tableRow.addView(tvIngredientDeleteButton);
ingredientTable.addView(tableRow); 

当我设置时tvIngredientDeleteButton.setMinLines(2);,我可以看到完整的成分单元格。不幸的是,所有行的最小高度都为2,这看起来很难看。我需要某种方法来识别配料单元是否有换行符并设置minLines为该情况或任何其他好的解决方案(但我不会计算配料字符或其他内容。我想这可以通过某些表属性或类似方法解决)。任何想法如何解决这个问题?

吉朗

TableRow是LinearLayout的直接子类。为了设置子视图在其中的放置方式,您需要定义其重力。默认值为TOP,我已经尝试过FILL,CENTER_VERTICAL等。因此,除TOP之外的setGravity()的任何值都将呈现具有完整内容的TextView。请参阅官方文档,以获取更多详细信息。

因此,您只需要在声明TableRow时添加一个语句即可达到您的要求。

          tableRow.setGravity(Gravity.FILL);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android:表格单元格的高度应获取上一个单元格的高度

来自分类Dev

jQuery以获取表格单元格的高度

来自分类Dev

一个单元格的HTML表动态高度

来自分类Dev

增加最后一个单元格的高度

来自分类Dev

表格单元格高度如何计算?

来自分类Dev

表格视图的动态单元格高度

来自分类Dev

获取UITableView单元格高度

来自分类Dev

动态单元格的高度

来自分类Dev

根据上一个单元格的值切换单元格的值

来自分类Dev

在上一个单元格下方显示单元格

来自分类Dev

用上一个单元格的值填充空白单元格

来自分类Dev

基于上一个单元格的条件格式

来自分类Dev

显示表格/表格单元格-将一个单元格向右对齐

来自分类Dev

显示表格/表格单元格-将一个单元格向右对齐

来自分类Dev

在表格视图单元格中选择文本并返回上一个视图

来自分类Dev

如何设置表格单元格的高度“显示:表格单元格”

来自分类Dev

表格视图单元格重新加载第一个单元格的内容

来自分类Dev

清除一个单元格后在Excel中清除表格中的单元格

来自分类Dev

单击其中一个单元格时重置表格单元格颜色

来自分类Dev

在第一个单元格悬停时覆盖表格单元格

来自分类Dev

第一个单元格比其他单元格宽的表格

来自分类Dev

Excel VBA:调用LostFocus()后获取上一个单元格的范围

来自分类Dev

如何从Excel公式中的上一个可见行获取单元格值

来自分类Dev

强制表格单元格从行中其他单元格获得最大高度

来自分类Dev

在Firefox下,表格单元格内的Textarea不会调整为单元格高度

来自分类Dev

在一个单元格中删除表格背景

来自分类Dev

使单元格的宽度和高度相同以填充表格

来自分类Dev

在单元格表格中跨度达到100%的高度

来自分类Dev

使用最小高度的单元格自动调整表格视图

Related 相关文章

  1. 1

    Android:表格单元格的高度应获取上一个单元格的高度

  2. 2

    jQuery以获取表格单元格的高度

  3. 3

    一个单元格的HTML表动态高度

  4. 4

    增加最后一个单元格的高度

  5. 5

    表格单元格高度如何计算?

  6. 6

    表格视图的动态单元格高度

  7. 7

    获取UITableView单元格高度

  8. 8

    动态单元格的高度

  9. 9

    根据上一个单元格的值切换单元格的值

  10. 10

    在上一个单元格下方显示单元格

  11. 11

    用上一个单元格的值填充空白单元格

  12. 12

    基于上一个单元格的条件格式

  13. 13

    显示表格/表格单元格-将一个单元格向右对齐

  14. 14

    显示表格/表格单元格-将一个单元格向右对齐

  15. 15

    在表格视图单元格中选择文本并返回上一个视图

  16. 16

    如何设置表格单元格的高度“显示:表格单元格”

  17. 17

    表格视图单元格重新加载第一个单元格的内容

  18. 18

    清除一个单元格后在Excel中清除表格中的单元格

  19. 19

    单击其中一个单元格时重置表格单元格颜色

  20. 20

    在第一个单元格悬停时覆盖表格单元格

  21. 21

    第一个单元格比其他单元格宽的表格

  22. 22

    Excel VBA:调用LostFocus()后获取上一个单元格的范围

  23. 23

    如何从Excel公式中的上一个可见行获取单元格值

  24. 24

    强制表格单元格从行中其他单元格获得最大高度

  25. 25

    在Firefox下,表格单元格内的Textarea不会调整为单元格高度

  26. 26

    在一个单元格中删除表格背景

  27. 27

    使单元格的宽度和高度相同以填充表格

  28. 28

    在单元格表格中跨度达到100%的高度

  29. 29

    使用最小高度的单元格自动调整表格视图

热门标签

归档