web-dev-qa-db-ja.com

tablelayoutの列間に仕切りを設定する方法は?

列の仕切りのあるテーブルを作成したいと思います。列を縦棒の画像で分割したい。これを実現するために、"Android:divider="@drawable/abc"を使用しましたが、機能しません。以下は同じための私のxmlファイルです:

 <TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  Android:orientation="horizontal" 
   Android:stretchColumns="*"
    Android:padding="5dip"
Android:divider="@drawable/tracking_green"
>
<TableRow  >

<TextView
    Android:id="@+id/retaileritem1"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_weight="1"
    Android:text="xxxxxxx" />

<TextView
    Android:id="@+id/retaileritem2"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_weight="1"
    Android:text="xxxxxxx" />

<ImageView
    Android:id="@+id/retailerimage1"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:layout_weight="1"
    Android:src="@drawable/tracking_green" />

</TableRow>
9
brig

Android:showDividers = "middle"を追加します

<TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
  Android:layout_width="match_parent"
  Android:layout_height="match_parent"
  Android:orientation="horizontal" 
  Android:stretchColumns="*"
  Android:padding="5dip"
  Android:divider="@drawable/tracking_green"
  Android:showDividers="middle"
>
11
Sonny Ng

これが私がやった方法です!

[〜#〜]コード[〜#〜]

<LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_gravity="center"
            Android:orientation="vertical" >

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:orientation="vertical"
                Android:padding="5dp" >

                <TextView
                    Android:id="@+id/textView4"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_gravity="center"
                    Android:layout_weight="1"
                    Android:paddingBottom="50dp"
                    Android:text="Salary Details"
                    Android:textAppearance="?android:attr/textAppearanceLarge"
                    Android:textStyle="bold" />

                <TableLayout
                    Android:layout_width="wrap_content"
                    Android:layout_height="match_parent"
                    Android:layout_weight="1"
                    Android:shrinkColumns="0"
                    Android:stretchColumns="1" >

                    <TableRow
                        Android:layout_width="match_parent"
                        Android:layout_height="match_parent"
                        Android:layout_gravity="center_vertical" >

                        <TextView
                            Android:layout_gravity="center_vertical"
                            Android:gravity="left"
                            Android:text="Financial Year"
                            Android:textColor="@Android:color/white"
                            Android:textSize="14sp"
                            Android:textStyle="bold" />

                        <Spinner
                            Android:id="@+id/spnSearchByCity"
                            Android:layout_width="fill_parent"
                            Android:layout_height="40dp"
                            Android:layout_gravity="center_vertical"
                            Android:entries="@array/year"
                            tools:listitem="@Android:layout/simple_spinner_dropdown_item" />
                    </TableRow>
                </TableLayout>

                <LinearLayout
                    Android:layout_width="match_parent"
                    Android:layout_height="match_parent"
                    Android:background="#d30059"
                    Android:orientation="vertical"
                    Android:paddingTop="50dp" >

                    <TableLayout
                        Android:layout_width="match_parent"
                        Android:layout_height="wrap_content" >

                        <TableRow
                            Android:id="@+id/tableRow1"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:background="@Android:color/white" >

                            <TextView
                                Android:id="@+id/textView1"
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_marginTop="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="Month"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />

                            <TextView
                                Android:id="@+id/textView2"
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_marginTop="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="Net Salary"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />

                            <TextView
                                Android:id="@+id/textView3"
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_marginRight="1dp"
                                Android:layout_marginTop="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="Click"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />
                        </TableRow>

                        <TableRow
                            Android:id="@+id/tableRow2"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:background="@Android:color/white" >

                            <TextView
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="Jan"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />

                            <TextView
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="11305"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />

                            <LinearLayout
                                Android:layout_width="match_parent"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_marginRight="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:orientation="vertical" >

                                <TextView
                                    Android:id="@+id/txtDetailsOneId"
                                    Android:layout_width="wrap_content"
                                    Android:layout_height="wrap_content"
                                    Android:layout_weight="1"
                                    Android:background="#000000"
                                    Android:text="DETAILS"
                                    Android:textAppearance="?android:attr/textAppearanceMedium" />
                            </LinearLayout>
                        </TableRow>

                        <TableRow
                            Android:id="@+id/tableRow3"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content"
                            Android:background="@Android:color/white" >

                            <TextView
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="Feb"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />

                            <TextView
                                Android:layout_width="wrap_content"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:text="11405"
                                Android:textAppearance="?android:attr/textAppearanceMedium" />

                            <LinearLayout
                                Android:layout_width="match_parent"
                                Android:layout_height="wrap_content"
                                Android:layout_marginBottom="1dp"
                                Android:layout_marginLeft="1dp"
                                Android:layout_marginRight="1dp"
                                Android:layout_weight="1"
                                Android:background="#d30059"
                                Android:gravity="center"
                                Android:orientation="vertical" >

                                <TextView
                                    Android:id="@+id/txtDetailsTwoId"
                                    Android:layout_width="wrap_content"
                                    Android:layout_height="wrap_content"
                                    Android:layout_weight="1"
                                    Android:background="#000000"
                                    Android:text="DETAILS"
                                    Android:textAppearance="?android:attr/textAppearanceMedium" />
                            </LinearLayout>
                        </TableRow>

                        <TableRow
                            Android:id="@+id/tableRow4"
                            Android:layout_width="wrap_content"
                            Android:layout_height="wrap_content" >
                        </TableRow>
                    </TableLayout>
                </LinearLayout>
            </LinearLayout>

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:orientation="vertical"
                Android:padding="50dp" >

                <Button
                    Android:id="@+id/btnMainMenuId"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:layout_gravity="center"
                    Android:layout_marginTop="5dp"
                    Android:text="MAIN MENU"
                    Android:textColor="@Android:color/white"
                    Android:textSize="12sp" />
            </LinearLayout>
        </LinearLayout>

スナップショット

enter image description here

2
Devrath

私が欲しかったのはこのようなテーブルです

table image with vertical dividers

これをstyles.xmlに追加しました

    <style name="Divider">
        <item name="Android:layout_width">1dip</item>
        <item name="Android:layout_height">match_parent</item>
        <item name="Android:background">@color/divider_color</item>
    </style>

    <style name="Divider_invisible">
        <item name="Android:layout_width">1dip</item>
        <item name="Android:layout_height">match_parent</item>
    </style>

Then in my table layout 

 <TableLayout
            Android:id="@+id/table"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:orientation="horizontal"
            Android:stretchColumns="*" >

            <TableRow
                Android:id="@+id/tableRow1"
                Android:layout_width="fill_parent"
                Android:layout_height="match_parent"
                Android:background="#92C94A" >

                <TextView
                    Android:id="@+id/textView11"
                    Android:paddingBottom="10dp"
                    Android:paddingLeft="5dp"
                    Android:paddingRight="5dp"
                    Android:paddingTop="10dp" />

                <LinearLayout
                    Android:layout_width="1dp"
                    Android:layout_height="match_parent" >

                    <View style="@style/Divider_invisible" />
                </LinearLayout>

                <TextView
                    Android:id="@+id/textView12"
                    Android:paddingBottom="10dp"
                    Android:paddingLeft="5dp"
                    Android:paddingRight="5dp"
                    Android:paddingTop="10dp"
                    Android:text="@string/main_wo_colon"
                    Android:textColor="@color/white"
                    Android:textSize="16sp" />

                <LinearLayout
                    Android:layout_width="1dp"
                    Android:layout_height="match_parent" >

                    <View style="@style/Divider" />
                </LinearLayout>

                <TextView
                    Android:id="@+id/textView13"
                    Android:paddingBottom="10dp"
                    Android:paddingLeft="5dp"
                    Android:paddingRight="5dp"
                    Android:paddingTop="10dp"
                    Android:text="@string/side_wo_colon"
                    Android:textColor="@color/white"
                    Android:textSize="16sp" />

                <LinearLayout
                    Android:layout_width="1dp"
                    Android:layout_height="match_parent" >

                    <View style="@style/Divider" />
                </LinearLayout>

                <TextView
                    Android:id="@+id/textView14"
                    Android:paddingBottom="10dp"
                    Android:paddingLeft="5dp"
                    Android:paddingRight="5dp"
                    Android:paddingTop="10dp"
                    Android:text="@string/total"
                    Android:textColor="@color/white"
                    Android:textSize="16sp" />
            </TableRow>

            <!-- display this button in 3rd column via layout_column(zero based) -->

            <TableRow
                Android:id="@+id/tableRow2"
                Android:layout_width="match_parent"
                Android:layout_height="match_parent"
                Android:background="#6F9C33" >

                <TextView
                    Android:id="@+id/textView21"
                    Android:padding="5dp"
                    Android:text="@string/servings"
                    Android:textColor="@color/white"
                    Android:textSize="16sp" />

                <LinearLayout
                    Android:layout_width="1dp"
                    Android:layout_height="match_parent" >

                    <View style="@style/Divider" />
                </LinearLayout>

..........
.......
......
1
YasirAzgar

この質問に答えるのはかなり遅いですが、これが正しい方法です。

行間の仕切りの場合:

<TableLayout
    Android:layout_width="wrap_content"
    Android:layout_height="match_parent"
    Android:divider="@color/colorPrimary"
    Android:showDividers="middle">

および列間の仕切りの場合:

<TableRow
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:divider="@color/colorPrimary"
    Android:showDividers="middle">

説明:

<TableLayout>の仕切りタグは、直接の子の間に仕切りを配置するために使用されます。つまり、Rowsです。

<TableRow>の仕切りタグは、直接の子の間に仕切りを配置するために使用されます。つまり、Columns

1
Mohammed Junaid

垂直仕切りのあるリストでは、次のようにImageViewを使用します。

<ImageView 
    Android:id="@+id/divider"
    Android:contentDescription="@string/divider"
    Android:layout_width="1dp"
    Android:layout_height="65dp"
    Android:layout_marginTop="8sp" 
    Android:background="#3B3B3B"
    />

リストに要素がないときに仕切りが表示されないようにするには、Android:background="#3B3B3B"行を削除して、プログラムで設定します。

((ImageView) view.findViewById(R.id.divider)).setBackgroundColor(Color.parseColor("#3B3B3B"));
0
Xavier Egea

2番目のtextviewmarginleft = 1dpを設定してみてください。分周器を設定したくない場合marginleft = 0dp

0
Yoon

tablelayoutはこれを直接提供しないため、考えられる1つの方法はframelayoutである可能性があります。目的のテーブルを別のbackground_tableの上に配置します。この場合、行は1つだけで、高さ/幅は「match_parent」です。必要なlayout_weightsで3つの列を追加します。 2番目の列に垂直仕切り-imageviewを追加します。メインテーブルも、見栄えを良くするために、その行で同じlayout_weihts + marginを使用する必要があります。

水平分割は、「分離される」テーブル行の間にイメージビューを追加することで実現できる可能性があります。

まだテストされていません、ただのアプローチ

ornay

0
ornay odder