GridLayout,TableLayout或GridView中单元格的边界线?

问题描述 投票:9回答:3

我正在尝试为我的应用程序中的某些项目创建一个表格/网格,我希望每个单元格周围都有一个边框,以将这些项目划分出来,并使设置与该项目保持一致。此应用将在工业环境中使用,其中可能会有一些不熟悉Android的人需要使用它,因此尝试使其尽可能简单。

表/网格将包含TextViewEditTextSpinnerButton,并且也可以滚动(通过ScrollView父级)。

我阅读了GridView,发现它(似乎)只能以编程方式获取项目,如果我错了,请纠正我。我觉得这是不必要的,因为我知道我想要什么物品以及在哪里。另外,我还没有尝试通过编程方式将项目添加到布局中,所以我认为我会首先尝试其他选项。另外,如果自动显示边界线,或者您完全可以显示它们,则GridView documentation不会说任何一种方式。

我从GridView开始,能够使除边界线以外的所有内容正常工作。我尝试过TableLayout来获得线路,但是那没有用。我曾经想过要创建一堆android:divider,它们带有黑色背景,宽度/高度约为2dp,以制作自己的边界线。但是,这感觉像是巨大的浪费。然后,我还阅读了TextView,发现了这一点:“ TableLayout容器不显示其行,列或单元格的边界线。”

然后我尝试了TableLayout documentation,结果与GridLayout相同。我尝试了TableLayoutpadding,但都无效。同样,margins表示:“网格由一组无限细线组成,这些细线将可视区域分为多个单元。”

我的问题是:

  1. GridLayout documentationTableLayout中是否缺少服装,可以通过xml给我边框线?

  2. 如果否,那么GridLayout会给我我想要的行吗?

  3. 我是否可以将我想要的所有以前提到的项目添加到GridView

android android-gridview android-tablelayout android-gridlayout
3个回答
5
投票

在TableLayout或GridLayout中是否缺少通过xml给我边框的服装?

编号

如果否,那么GridView会给我我想要的行吗?

编号

我将能够将所有以前提到的项目添加到GridView吗?

是的,尽管GridView之类的东西工作得很好,但我不能说。

最简单的方法,就是让我想要的线是让SpinnerTableLayout的每个单元格成为一些包含该单元格小部件的容器,容器的背景就是您的行。可以在XML中为此背景定义GridLayout,根据单元格的实际要求可以很好地调整其大小。


8
投票

我实际上可以通过在A ShapeDrawable视图中设置ShapeDrawable来获得所需的外观,然后在子项中设置android:background="#000000"(只是一些绿色)并与GridLayout结合使用得到我想要的“网格”线。不过要感谢CommonsWare,它使我思考了一个新的方向,并最终成为了解决方案。

编辑:这并不完全符合预期。您需要仅通过android:background="#8CDD81"才能使用的android:layout_margin="2dp",以便在子项上获得正确的宽度。尚未使用android:layout_alignLeft/RightRelativeLayout中的child items这个想法进行测试。


0
投票

对于将来的访问者,这是我使用RelativeLayout的方法:

table.xml

GridLayout
© www.soinside.com 2019 - 2024. All rights reserved.