2017-06-24 20 views
0

我想在Android中創建表。 我得到了很遠,但我有問題HeadLineSum和BodySum不水平漂浮到最右邊。 我做了一個Excel佈局來展示我真正想要的東西。表文本對齊權

enter image description here

而這就是我成功創建。 enter image description here

我的Android佈局代碼:

<!-- Breakfast --> 
     <TableLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 

      <TableRow 
       android:id="@+id/tableRowHeadlineBreakfast" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 

       <ImageView 
        android:id="@+id/imageViewAddBreakfast" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        app:srcCompat="@drawable/ic_menu_add" /> 

       <TextView 
        android:id="@+id/textViewHeadlineBreakfast" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="80" 
        android:text="@string/breakfast" 
        android:textSize="18sp" /> 

       <TextView 
        android:id="@+id/textViewEnergyBreakfast" 
        android:layout_width="wrap_content" 
        android:layout_height="fill_parent" 
        android:layout_weight="10" 
        android:text="@string/energy" 
        android:textSize="18sp" /> 
      </TableRow> 
     </TableLayout> 
    <TableLayout 
     android:id="@+id/tableLayoutBreakfastItems" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <TableRow 
      android:id="@+id/tableRowBreakfastItems" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 

      <TextView 
       android:id="@+id/textViewBreakfastItemsName" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="80" 
       android:text="@string/name" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/textViewBreakfastItemsEnergy" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_weight="10" 
       android:text="@string/energy" 
       android:textSize="18sp" /> 
     </TableRow> 

     <TableRow 
      android:id="@+id/tableRowBreakfastItemsSub" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 

      <TextView 
       android:id="@+id/textViewBreakfastItemsSub" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/name" /> 

     </TableRow> 

    </TableLayout> 
    <!-- //Breakfast --> 

回答

1

表佈局太舊技術來實現這種類型的設計的你應該使用的LinearLayout的相同。

如果要使用TableLayout只是複製粘貼我的代碼仍然實現這種類型的設計

這裏是我的代碼

首先創建border.xml文件中繪製文件夾

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> 

    <stroke android:width="1dp" android:color="#fff" /> 

</shape> 

然後複製粘貼硫S碼main_activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_table_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/colorPrimary" 
    android:orientation="vertical" 
    tools:context="com.example.dhruv.demovolleyjson.TableLayout"> 


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

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

      <ImageView 
       android:layout_width="40dp" 
       android:layout_height="40dp" 

       android:background="@drawable/border" 
       android:padding="5dp" 
       android:src="@mipmap/ic_launcher" /> 

      <TextView 
       android:id="@+id/textViewHeadlineBreakfast" 
       android:layout_width="match_parent" 

       android:layout_height="match_parent" 
       android:layout_weight="1" 
       android:background="@drawable/border" 
       android:gravity="center_vertical" 
       android:padding="5dp" 
       android:text="Breakfast" 
       android:textColor="#fff" 
       android:textSize="20sp" /> 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 

       android:layout_gravity="right" 
       android:background="@drawable/border" 
       android:gravity="center" 
       android:padding="5dp" 
       android:text="Energy" 
       android:textColor="#fff" 
       android:textSize="20sp" /> 

     </TableRow> 

    </TableLayout> 

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

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="40dp"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="40dp" 

       android:layout_weight="1" 
       android:background="@drawable/border" 
       android:gravity="center_vertical" 
       android:padding="5dp" 
       android:text="Name" 
       android:textColor="#fff" 
       android:textSize="20sp" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 

       android:layout_gravity="right" 
       android:background="@drawable/border" 
       android:gravity="center" 
       android:padding="5dp" 
       android:text="Energy" 
       android:textColor="#fff" 
       android:textSize="20sp" /> 
     </TableRow> 
    </TableLayout> 

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

     <TableRow 
      android:layout_width="match_parent" 
      android:layout_height="40dp"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="40dp" 
       android:background="@drawable/border" 
       android:gravity="center_vertical" 
       android:padding="5dp" 
       android:text="Name" 
       android:textColor="#fff" 
       android:textSize="20sp" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_gravity="right" 
       android:layout_weight="1" 
       android:background="@drawable/border" 
       android:gravity="center" 
       android:padding="5dp" 
       android:textColor="#fff" 
       android:textSize="20sp" /> 
     </TableRow> 
    </TableLayout> 


</LinearLayout> 

enter image description here

+0

謝謝。我也有興趣學習如何在LinearLayout中做到這一點。 – Solo

+0

歡迎兄弟.... –