Стол без боковой границы - PullRequest
       68

Стол без боковой границы

0 голосов
/ 17 апреля 2019

Я хочу иметь возможность создавать таблицу (например, используя 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

Как достичь своей цели?

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

Создайте новый объект рисования с правой границей:

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>

И используйте его в своем макете, как показано ниже:

<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

0 голосов
/ 17 апреля 2019

хмммм Довольно милая.Ниже строка кода будет полезна для вас.

<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>

И не забудьте оценить и понравиться ответ.

...