表没有边框

问题描述 投票:0回答:1

我希望能够创建表(例如使用TableLayout)而不需要边框。目的是实现以下目标:

enter image description here

我正在尝试这样的事情:

border.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:left="-5dp" android:right="-5dp" android:top="0dp" android:bottom="0dp">
        <shape
            android:shape="rectangle">
            <stroke android:width="1dp" android:color="#123456" />
        </shape>
    </item>
</layer-list>

和表格布局(textView的一些示例值):

  <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            android:padding="5dp" >

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/home"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Months" />

                <TextView
                    android:id="@+id/status"
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Number of Visits" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="January" />

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="1" />
            </TableRow>

            <TableRow
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" >

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="Februrary" />

                <TextView
                    android:layout_width="0dp"
                    android:layout_weight="1"
                    android:background="@drawable/border"
                    android:gravity="center"
                    android:padding="15dip"
                    android:text="" />
            </TableRow>
        </TableLayout>

它显示如下 - 我无法获得列之间的中间线:

enter image description here

如何实现我的目标?

android android-layout android-xml android-tablelayout
1个回答
0
投票

嗯非常棒。下面的代码行将对您有所帮助。

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/border"
        android:padding="5dp" xmlns:android="http://schemas.android.com/apk/res/android">

    <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

        <TextView
                android:id="@+id/home"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="Months" />

        <View android:layout_width="1dp"
              android:layout_height="match_parent"
              android:background="#000"
              android:layout_gravity="center"/>

        <TextView
                android:id="@+id/status"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="Number of Visits" />
    </TableRow>

    <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="January" />

        <View android:layout_width="1dp"
              android:layout_height="match_parent"
              android:background="#000"
              android:layout_gravity="center"/>

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="1" />
    </TableRow>

    <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="Februrary" />

        <View android:layout_width="1dp"
              android:layout_height="match_parent"
              android:background="#000"
              android:layout_gravity="center"/>

        <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="" />
    </TableRow>
</TableLayout>

并且不要忘记欣赏并喜欢答案。


0
投票

使用右边框创建一个新的drawable:

border_right.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:left="0dp" android:right="-5dp" android:top="0dp" android:bottom="0dp">
        <shape
            android:shape="rectangle">
            <stroke android:width="1dp" android:color="#123456" />
        </shape>
    </item>
</layer-list>

并将此drawable用于您的布局,如下所示:

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/border"
        android:padding="5dp" >

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/home"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="Months" />

            <TextView
                android:id="@+id/status"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border_right"
                android:gravity="center"
                android:padding="15dip"
                android:text="Number of Visits" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="January" />

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border_right"
                android:gravity="center"
                android:padding="15dip"
                android:text="1" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border"
                android:gravity="center"
                android:padding="15dip"
                android:text="Februrary" />

            <TextView
                android:layout_width="0dp"
                android:layout_weight="1"
                android:background="@drawable/border_right"
                android:gravity="center"
                android:padding="15dip"
                android:text="" />
        </TableRow>
    </TableLayout>

上面代码的输出如下:

enter image description here

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