我正在尝试为我的应用程序中的某些项目创建一个表格/网格,我希望每个单元格周围都有一个边框,以将这些项目划分出来,并使设置与该项目保持一致。此应用将在工业环境中使用,其中可能会有一些不熟悉Android的人需要使用它,因此尝试使其尽可能简单。
表/网格将包含TextView
,EditText
,Spinner
和Button
,并且也可以滚动(通过ScrollView
父级)。
我阅读了GridView
,发现它(似乎)只能以编程方式获取项目,如果我错了,请纠正我。我觉得这是不必要的,因为我知道我想要什么物品以及在哪里。另外,我还没有尝试通过编程方式将项目添加到布局中,所以我认为我会首先尝试其他选项。另外,如果自动显示边界线,或者您完全可以显示它们,则GridView
documentation不会说任何一种方式。
我从GridView
开始,能够使除边界线以外的所有内容正常工作。我尝试过TableLayout
来获得线路,但是那没有用。我曾经想过要创建一堆android:divider
,它们带有黑色背景,宽度/高度约为2dp,以制作自己的边界线。但是,这感觉像是巨大的浪费。然后,我还阅读了TextView
,发现了这一点:“ TableLayout容器不显示其行,列或单元格的边界线。”
然后我尝试了TableLayout documentation,结果与GridLayout
相同。我尝试了TableLayout
和padding
,但都无效。同样,margins
表示:“网格由一组无限细线组成,这些细线将可视区域分为多个单元。”
我的问题是:
在GridLayout documentation或TableLayout
中是否缺少服装,可以通过xml给我边框线?
如果否,那么GridLayout
会给我我想要的行吗?
我是否可以将我想要的所有以前提到的项目添加到GridView
?
在TableLayout或GridLayout中是否缺少通过xml给我边框的服装?
编号
如果否,那么GridView会给我我想要的行吗?
编号
我将能够将所有以前提到的项目添加到GridView吗?
是的,尽管GridView
之类的东西工作得很好,但我不能说。
最简单的方法,就是让我想要的线是让Spinner
或TableLayout
的每个单元格成为一些包含该单元格小部件的容器,容器的背景就是您的行。可以在XML中为此背景定义GridLayout
,根据单元格的实际要求可以很好地调整其大小。
我实际上可以通过在A ShapeDrawable
视图中设置ShapeDrawable
来获得所需的外观,然后在子项中设置android:background="#000000"
(只是一些绿色)并与GridLayout
结合使用得到我想要的“网格”线。不过要感谢CommonsWare,它使我思考了一个新的方向,并最终成为了解决方案。
编辑:这并不完全符合预期。您需要仅通过android:background="#8CDD81"
才能使用的android:layout_margin="2dp"
,以便在子项上获得正确的宽度。尚未使用android:layout_alignLeft/Right
中RelativeLayout
中的child items
这个想法进行测试。
对于将来的访问者,这是我使用RelativeLayout
的方法:
table.xml
GridLayout