2016-11-20 18 views
1

私はTableLayoutにverdical dividerを追加したいと思います。TableLayoutに縦型分周器を追加できない

TableLayoutは、次のようになります。

Table Layout

しかし、私は、各行に2 textview秒の間のライン(分周器)を追加します。私は2つの間にViewを配置しようとしましたが、行が伸びています。ここで

は、上記のレイアウトのための私のコードです:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:id="@+id/row" 
android:layout_gravity="center" 
android:showDividers="beginning" 
android:orientation="horizontal" 
android:stretchColumns="1" 
android:background="@drawable/custom_background"> 

<TableRow> 
    <TextView 
     android:text="Name" 
     android:padding="3dip" /> 

    <TextView 
     android:text="Imran" 
     android:gravity="left" 
     android:padding="3dip" /> 
</TableRow> 

<View 
    android:layout_height="2dip" 
    android:background="#FF909090" /> 

<TableRow> 
    <TextView 
     android:text="Name" 
     android:padding="3dip" /> 

    <TextView 
     android:text="Test" 
     android:gravity="left" 
     android:padding="3dip" /> 
</TableRow> 

<View 
    android:layout_height="2dip" 
    android:background="#FF909090" /> 

<TableRow> 
    <TextView 
     android:text="Name" 
     android:padding="3dip" /> 

    <TextView 
     android:text="Test" 
     android:gravity="left" 
     android:padding="3dip" /> 
</TableRow> 

私は次のようなレイアウトを実現したい:

Table Layout

誰も私が使用して上記のレイアウトを達成するのを助けることができますTableLayoutまたは他の方法ですか?

答えて

2

ここに主要なxmlファイルがあります。

android:divider="@drawable/vertical_divider" 
    android:showDividers="middle" 

を使用すると、リニアレイアウトで垂直ディバイダを表示できます。私はあなたのレイアウトを設計した、私はテーブルのレイアウトが好きではない、あなたはリニアレイアウトを試すことができます。ここで

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@drawable/rounded_corner" 
android:orientation="vertical"> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:divider="@drawable/vertical_divider" 
    android:showDividers="middle"> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="16dp" 
     android:text="Lorem ipsum" /> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="16dp" 
     android:text="Lorem ipsum" /> 
    </LinearLayout> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="#FFCCCCCC"></View> 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:divider="@drawable/vertical_divider" 
    android:orientation="horizontal" 
    android:showDividers="middle"> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="16dp" 
     android:text="Lorem ipsum" /> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="16dp" 
     android:text="Lorem ipsum" /> 
    </LinearLayout> 

<View 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="#FFCCCCCC"></View> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:divider="@drawable/vertical_divider" 
    android:orientation="horizontal" 
    android:showDividers="middle"> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="16dp" 
     android:text="Lorem ipsum" /> 

    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="16dp" 
     android:text="Lorem ipsum" /> 
    </LinearLayout> 

    <View 
    android:layout_width="match_parent" 
    android:layout_height="1dp" 
    android:background="#FFCCCCCC"></View> 

    </LinearLayout> 

は:)

出力上記

vertical_divider.xml 

    <?xml version="1.0" encoding="UTF-8"?> 
    <inset xmlns:android="http://schemas.android.com/apk/res/android" 
    android:insetBottom="2dp" 
    android:insetTop="2dp"> 
    <shape> 
     <size android:width="1dp" /> 
     <solid android:color="#FFCCCCCC" /> 
    </shape> 
    </inset> 

置きますカラーコードのコード

rounded_corner.xmlここ

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android"> 

    <solid android:color="#00000000" /> 
    <stroke 
    android:width="1dp" 
    android:color="#bababa" /> 

    <padding 
    android:bottom="1dp" 
    android:left="1dp" 
    android:right="1dp" 
    android:top="1dp" /> 

    <corners 
    android:bottomLeftRadius="25dip" 
    android:bottomRightRadius="25dip" 
    android:topLeftRadius="25dip" 
    android:topRightRadius="25dip" /> 
    </shape> 

のコードです

enter image description here

+0

私を助けてくれてありがとうが、私は中間にない最初のテキストビューの隣に分割線が必要です。どうやってやるの? 私はアンドロイドを試しました:showdividers = "beginning"しかし、それはまだ中央に垂直ディバイダを表示しています。 –

+0

親愛なるテキストビューの重さで遊びましょう。お試しください。ウェイト1.5と0.5、 –

+0

ウェイトを追加します。内部レイアウトに水平を置き、このコードに従ってテキストビューのウェイトを変更します。 <のLinearLayout アンドロイド:weightSum = "2" アンドロイド:showDividers = "中間"> <のTextView アンドロイド:layout_weight = "0.7" /> <のTextView アンドロイド:layout_weight = "1.3" /> –

4

私は、このソリューションは非常に簡単だと思います。

あなたのTableLayout:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_margin="10dp" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:divider="@drawable/table_divider" 
    android:showDividers="middle" 
    android:shrinkColumns="*" 
    android:background="@drawable/rounded_corners"> 

    <TableRow 
     android:divider="@drawable/table_divider" 
     android:showDividers="middle" 
     android:weightSum="3"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:padding="3dp" 
      android:text="Column1" 
      android:textStyle="bold" /> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:padding="3dp" 
      android:text="Column2" 
      android:textStyle="bold" /> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:padding="3dp" 
      android:text="Column3" 
      android:textStyle="bold" /> 
    </TableRow> 

    <TableRow 
     android:divider="@drawable/table_divider" 
     android:showDividers="middle" 
     android:weightSum="3"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:padding="3dp" 
      android:text="Column1" /> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:padding="3dp" 
      android:text="Column2" /> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:padding="3dp" 
      android:text="Column3" /> 
    </TableRow> 

</TableLayout> 

あなたの背景描画可能:

<?xml version="1.0" encoding="utf-8"?> 

<solid android:color="#00000000" /> 
<stroke 
    android:width="1dp" 
    android:color="@android:color/black" /> 

<corners 
    android:bottomLeftRadius="10dp" 
    android:bottomRightRadius="10dp" 
    android:topLeftRadius="10dp" 
    android:topRightRadius="10dp" /> 

そして、あなたの仕切りのための形状:

table_divider.xml 

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <size android:height="1dp" /> 
    <size android:width="1dp" /> 
    <solid android:color="@android:color/black" /> 
</shape> 

結果:背景なし

android:showDividers="beginning|middle|end" 

結果:

Result

あなたが背景を必要としない場合、あなたはあなたのTableLayoutで、すべてのTableRowでこれを行うことができます

Result without the background

関連する問題