2017-03-09 71 views
1

我想實現我的可擴展列表視圖的以下佈局。android嵌套LinearLayout調整

Layout

問題:

在Android預覽佈局看起來預期:

指第一圖像在下面附着。

但是,當我在模擬器或設備上運行它時,第二個TextView不會顯示。

指第二圖像中附件下方

我必須設置第二ImageView的(ivGroupIndicator),以便匹配父用於第二TextView的顯示的高度。但是這延伸了可擴展的箭頭圖標。

參閱最後圖像附件下方

Images

這裏是我的layout.xml

<?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="50dp" 
    android:orientation="horizontal"> 

    <ImageView 
     android:layout_width="25dp" 
     android:layout_height="match_parent" 
     android:src="@drawable/ci_hand_cursor" 
     android:layout_gravity="center" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:paddingLeft="5dp" 
     android:paddingTop="5dp" 
     android:layout_weight="0.8"> 

     <TextView 
      android:id="@+id/route_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Dhelhi Belhi" 
      android:fontFamily="sans-serif" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      android:textColor="@color/colorPrimaryText" 
      android:paddingBottom="2dp"/> 

     <TextView 
      android:id="@+id/route_schedule_date" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="20-September-2017" 
      android:fontFamily="sans-serif" 
      android:textSize="14sp" 
      android:textColor="@color/colorSecondaryText" 
      android:paddingBottom="5dp"/> 
    </LinearLayout> 

    <ImageView 
     android:id="@+id/ivGroupIndicator" 
     android:layout_width="25dp" 
     android:layout_height="match_parent" 
     android:background="@drawable/group_indicator" 
     android:layout_gravity="center"/> 

</LinearLayout> 

我失去的是什麼?

+0

問題可能是您將父佈局的高度設置爲50dp。試着去包裝內容 –

+0

你可以附加第二張圖片嗎?它缺失。 –

回答

0

這應該做的伎倆:

  • 使用0dp爲高度/寬度使用權重時
  • 重量可以只是1(不是0.8)
  • 使用在2個文本視圖相等的權重,這樣他們共享相同的垂直空間
  • 在文本視圖上將重力設置爲center_vertical,以便文本居中。
  • 在圖像上設置縮放類型,使其不會拉伸。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="50dp" 
        android:orientation="horizontal"> 
    
        <ImageView 
         android:layout_width="25dp" 
         android:layout_height="match_parent" 
         android:layout_gravity="center" 
         android:scaleType="centerInside" 
         android:src="@drawable/ci_hand_cursor" /> 
    
        <LinearLayout 
         android:layout_width="0dp" 
         android:layout_height="match_parent" 
         android:layout_weight="1" 
         android:orientation="vertical" 
         android:paddingLeft="5dp" 
         android:paddingTop="5dp"> 
    
         <TextView 
          android:id="@+id/route_name" 
          android:layout_width="match_parent" 
          android:layout_height="0dp" 
          android:layout_weight="1" 
          android:fontFamily="sans-serif" 
          android:gravity="center_vertical" 
          android:text="Dhelhi Belhi" 
          android:textColor="@color/colorPrimaryText" 
          android:textSize="16sp" 
          android:textStyle="bold" /> 
    
         <TextView 
          android:id="@+id/route_schedule_date" 
          android:layout_width="match_parent" 
          android:layout_height="0dp" 
          android:layout_weight="1" 
          android:fontFamily="sans-serif" 
          android:gravity="center_vertical" 
          android:text="20-September-2017" 
          android:textColor="@color/colorSecondaryText" 
          android:textSize="14sp" /> 
        </LinearLayout> 
    
        <ImageView 
         android:id="@+id/ivGroupIndicator" 
         android:layout_width="25dp" 
         android:layout_height="match_parent" 
         android:layout_gravity="center" 
         android:background="@drawable/group_indicator" 
         android:scaleType="centerInside" /> 
    </LinearLayout> 
    
+0

嗨,感謝您的回覆。這是我現在得到的:https://s24.postimg.org/i4kh1mwbp/img5.png中間的佈局被壓扁了 – John

+0

只需將頂級LinearLayout的高度增加到高於'50dp'的高度即可。也許'80dp'? –

+0

修正:)我將第二個LinearLayout的高度從match_parent更改爲wrap_content,並且做到了這一點。謝謝 – John

0

的問題也許是,你設置父佈局50dp的高度。嘗試設置它來包裝內容,並使用height=0dpweight=1垂直LinearLayout