【问题标题】:How can I add separating lines between my TableRows that are created programmatically?如何在以编程方式创建的 TableRows 之间添加分隔线?
【发布时间】:2011-07-02 19:16:39
【问题描述】:

我有一个在 Android 项目中以编程方式创建的 TableLayout。只要从数据库中获取更多行,我就会不断添加 TableRows。现在我想在 TableRows 之间添加分隔线,例如边框。

在我从 XML 静态创建的其他 TableLayout 中,我使用 View 作为分隔符,使用 style.xml 进行样式。

我尝试像这样向表格布局添加视图:

View v=new View(this);
         v.setLayoutParams(new LayoutParams(
                 LayoutParams.FILL_PARENT,
                 LayoutParams.WRAP_CONTENT));
         v.setBackgroundResource(R.drawable.rowseparator_shape);
             tr.addView(mTvDate);
             tr.addView(mTvResult);

             tl.addView(tr); 
             tl.addView(v);

但它只会在所有收集的 TableRows 之后添加一次。为每个添加的 tr 添加一个视图的聪明方法是什么?还是我应该一起使用其他东西?

【问题讨论】:

    标签: android tablelayout separator


    【解决方案1】:
    View v = new View(this);
    v.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, 1));
    v.setBackgroundColor(Color.rgb(51, 51, 51));
    tr.addView(mTvDate);
    tr.addView(mTvResult);
    
    tl.addView(tr); 
    tl.addView(v);
    

    在这里,我正在创建一个具有特定背景颜色的 1 像素高的视图。这对我有用。

    【讨论】:

    • TableRow.LayoutParams.FILL_PARENT 现在已弃用。
    • 我的布局中有多行,当我这样声明时,每一行都显示错误。
    • 有什么方法可以在xml中使用android:divider标签
    【解决方案2】:

    感谢 Madhusuthanan。我花了一段时间寻找如何做到这一点,以简单地将 TextViews 与水平线分开。我正在以编程方式创建我的视图(不使用表格布局)。这是我根据上述答案得出的结论:

    View line = new View(this);
    line.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, 1));
    line.setBackgroundColor(Color.rgb(51, 51, 51));
    layout.addView(line);
    

    简单!希望这对其他人有帮助!

    【讨论】:

    • 感谢分享我正在寻找这个!
    • 工作正常,根据我的要求...谢谢查斯登
    【解决方案3】:

    您可以使用比这样做更容易和更好的 Listview。

    【讨论】:

    • 是的,我已经阅读了 ListView 优于 TableLayout 的好处。但是我发现 TableLayout 更容易设置样式,所以这就是我选择它的原因。
    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 2021-10-21
    相关资源
    最近更新 更多