2017-06-29 64 views
0

是否可以使用一個父項的項目寬度與項目的寬度與另一個父項的寬度匹配?使用LinearLayout將TextView項目的寬度與具有不同父項的項目的寬度匹配

我想基本上做一個表,其中上部分包含一個LinearLayout與水平TextViews持有標籤,基本上是行和另一個滾動使LinearLayout與水平的TextViews持有值在應用程序中更新。我希望標籤行具有固定寬度的文字視圖和結果文字視圖具有相同的寬度。現在我有標籤寬度wrap_content,這是我想要的。如何讓第二個佈局中的TextView具有相同的寬度,即使內容將被更改?

簡單地說:我想表弟textviews有相同的寬度,和一個表弟複製其他。

下面是我的.xml代碼。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:color/background_dark" 
    android:orientation="horizontal"> 



    <TextView 
     android:id="@+id/resultsLabel" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Results" /> 

    <TextView 
     android:id="@+id/latLabel" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Latitude" /> 

    <TextView 
     android:id="@+id/longLabel" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Longitude" /> 

    <TextView 
     android:id="@+id/timeLabel" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Time" /> 


</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 
    android:background="@android:color/background_dark"> 

    <TextView 
     android:id="@+id/resultsValue" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center" /> 

    <TextView 
     android:id="@+id/latValue" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center" /> 

    <TextView 
     android:id="@+id/longValue" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center" /> 

    <TextView 
     android:id="@+id/timeValue" 
     android:layout_margin="1dp" 
     android:background="@color/cardview_light_background" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:gravity="center" 
     /> 


</LinearLayout> 

回答

0

我添加的LinearLayout嵌套是曾經爲表垂直方向的主要LinearLayout中,然後水平爲列,然後垂直再次舉行兩個textViews:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.android.stardustscanner.LogData"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@android:color/background_dark" 
     android:orientation="horizontal"> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/resultsLabel" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" 
       android:text="Results" /> 

      <TextView 
       android:id="@+id/resultsValue" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/latLabel" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" 
       android:text="Latitude" /> 

      <TextView 
       android:id="@+id/latValue" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/longLabel" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" 
       android:text="Longitude" /> 

      <TextView 
       android:id="@+id/longValue" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" /> 

     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:orientation="vertical"> 

      <TextView 
       android:id="@+id/timeLabel" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" 
       android:text="Time" /> 

      <TextView 
       android:id="@+id/timeValue" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_margin="1dp" 
       android:layout_weight="1" 
       android:background="@color/cardview_light_background" 
       android:gravity="center" /> 

     </LinearLayout> 

    </LinearLayout> 

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

     <Button 
      android:layout_width="match_parent" 
      android:layout_margin="15dp" 
      android:layout_height="wrap_content" 
      android:text="Clear Log"/> 

    </LinearLayout> 


</LinearLayout> 
1

TableLayout是你在找什麼,嘗試了這一點:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:background="@android:color/background_dark" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

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

     <TextView 
      android:id="@+id/resultsLabel" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Results" /> 

     <TextView 
      android:id="@+id/latLabel" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Latitude" /> 

     <TextView 
      android:id="@+id/longLabel" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Longitude" /> 

     <TextView 
      android:id="@+id/timeLabel" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:gravity="center" 
      android:text="Time" /> 
    </TableRow> 

    <TableRow 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 

     <TextView 
      android:id="@+id/resultsValue" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center" /> 

     <TextView 
      android:id="@+id/latValue" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center" /> 

     <TextView 
      android:id="@+id/longValue" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center" /> 

     <TextView 
      android:id="@+id/timeValue" 
      android:layout_margin="1dp" 
      android:background="@color/cardview_light_background" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center" /> 
    </TableRow> 
</TableLayout> 
+0

感謝您的答覆。我從來沒有使用過TableLayout,我可以配置它滾動行2,同時保持屏幕上的第一行嗎? –

+0

好問題。現在,這將是真正的挑戰xD – Tharkius

+0

如果您將TextViews包裝在ScrollView的第二行中,則可以分別滾動它們中的每一個。可能不是你要找的東西,但這是我現在能想到的最好的。 – Tharkius