1. 程式人生 > >android的listview分組顯示的時候layout_marginTop失效的解決辦法

android的listview分組顯示的時候layout_marginTop失效的解決辦法

        在使用android的ListView元件做類似於通訊錄這樣的功能時,需要根據A、B、C這樣的標題來區來分組顯示通訊錄中的姓名,本人在做實驗過程中遇到了這樣一個問題,比如,想讓標題item和上邊的使用者名稱item中間有個間隙,而組(同個標題下)使用者名稱之間不能有間隙,原本以為很簡單,我認為在標題item的最外層LinearLayout中增加一個layout_marginTop屬性即可,結果發現一隻無效,最後請教了個高手告訴我需要在標題item的頂層LinearLayout中再巢狀一層,然後在第二層中設定這個屬性才會有效,最後一試用,果然好了。

        ListView分組顯示的程式碼網上浩如煙海,這裡只貼出關鍵的ListView的的兩種item的程式碼如下:

        標題item的layout,標紅的就是嵌入的第二層:

        <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:orientation="vertical">
                  <!-- 必須再巢狀一層LinearLayout,否則layout_marginTop失效 -->
          <LinearLayout


                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:background="#EDEDED"
                 android:layout_marginTop="15dip"
                 android:orientation="horizontal" >
                <TextView  
             android:id="@+id/shopName"
             android:layout_width="match_parent"  
             android:layout_height="40dip"  
             android:minHeight="30dip"  
             ndroid:gravity="center_vertical"  
         /> 
            </LinearLayout>

           </LinearLayout>

           姓名的item的layout:

            <?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="match_parent"
                 android:background="#FFFFFF"
                 android:orientation="vertical" >
                 <TextView
                       android:id="@+id/goodName"
               android:layout_width = "match_parent"  
               android:layout_height = "match_parent"  
               android:minHeight = "30dip"  
               android:gravity = "center_vertical"  
               android:paddingLeft = "10dip"  
          />
             </LinearLayout>

             最後的效果如圖,中間粉紅色的間距就是想要的效果:

   

            原本以為Android開發很簡單,就平時利用業務時間玩玩,沒想到裡邊的細節門道很多,看來我又自以為是了,哈哈哈!