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

时间:2013-04-24 18:33:43

标签: android android-gridview android-tablelayout android-gridlayout

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

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

我读到了GridView并发现它(似乎)只能以编程方式获取项目,如果我错了请纠正我。我觉得这是不必要的,因为我知道我想要什么,在哪里。此外,我还没有尝试以编程方式添加项目到布局,所以我想我会先尝试其他选项。此外,GridView documentation如果自动显示边框线,或者根本无法显示边框线,则不会说出这种方式。

我从一个TableLayout开始,并且能够获得除边界线以外的所有内容。我试过android:divider来获取线条,但这不起作用。我有一个想法是创建一堆具有黑色背景和~2dp宽度/高度的TextView s来制作我自己的边界线。这感觉就像是一个巨大的浪费。然后我还阅读TableLayout documentation并发现:“TableLayout容器不显示其行,列或单元格的边框线。”

然后我尝试了GridLayout并获得了与TableLayout相同的结果。我尝试了paddingmargins,但都没有效果。此外,GridLayout documentation状态:“网格由一组无限细线组成,将观看区域分隔为单元格。”

我的问题是:

  1. 我在TableLayoutGridLayout错过了通过xml给我边框线的遗产吗?

  2. 如果不是,那么GridView会给我我想要的台词吗?

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

3 个答案:

答案 0 :(得分:8)

我实际上能够通过在android:background="#000000"视图中设置GridLayout然后在我设置android:background="#8CDD81"(只是一些绿色)的子项目中实现所需的外观与android:layout_margin="2dp"我能够获得我想要的“网格”线。感谢CommonsWare让我思考一个新的方向,转变为一个解决方案。

修改 这不像预期的那样有效。您需要android:layout_alignLeft/Right只能通过RelativeLayout获取,以便在子项上获得正确的宽度。尚未在child items内的RelativeLayout内使用GridLayout这个想法对此进行测试。

答案 1 :(得分:5)

  

我在TableLayout或GridLayout中错过了一个可以通过xml给我边框线的声明吗?

没有

  

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

没有

  

我是否可以将所有以前提到的项目添加到GridView?

是的,虽然像Spinner这样的东西有多好用,但我不能说。

最简单的方法,在我的头顶,给你你寻找的行是让TableLayoutGridLayout的每个单元格成为包含小部件的容器。单元格,在其中为容器提供背景,即行。可以在XML中为该背景定义A ShapeDrawable,根据单元格的实际要求,可以很好地调整大小。

答案 2 :(得分:0)

对于以后的访问者,这就是我使用TableLayout的方法:

table.xml

<TableLayout android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:background="#969696">
        <!-- table heading -->
        <TableRow>
            <Button android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Name"
                android:background="#d2d2d2"
                android:layout_margin="1dp"
                />
            <Button android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Address"
                android:background="#d2d2d2"
                android:layout_margin="1dp"
                />
        </TableRow>
        <!-- table data -->
        <TableRow>
            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ahtisham"
                android:layout_margin="1dp"
                android:background="#f1f1f1"
                />
            <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Kashmir"
                android:layout_margin="1dp"
                android:background="#f1f1f1"
                />
        </TableRow>            
 </TableLayout>