2016-08-13 53 views
0

這裏ListView中的行是我的自定義列表適配器的getView()方法大小的Android

public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     View row = convertView; 

     if (row == null) 
     { 
      row = LayoutInflater.From(mContext).Inflate(Resource.Layout.listview_row, null, false); 
     } 
     TextView textName = row.FindViewById<TextView>(Resource.Id.textName); 
     textName.Text = mItems[position]; 
     return row; 
    } 

這裏是我的listview_row.xml文件,該文件是佈局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:minWidth="25px" 
android:minHeight="25px"> 
<TextView 
    android:text="Name" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/textName" 
    android:padding="10dp"/> 
</LinearLayout> 

我很好奇如何列出每行的視圖大小。

當我將「listview_row」充氣到一個視圖中並將其放入ListView中時,我期待第一個充氣視圖佔用整個ListView空間,因爲此視圖具有layout_width =「match_parent」和layout_height = 「match_parent」。

但是,當我運行此代碼時,listView大小的每一行都基於textView中的行內容。這怎麼可能?這是與inflate()方法的參數有關嗎?

你能解釋一下ListView如何調整它的行嗎?

回答

0

按照這種方式來編程適配器的行列表。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="ADD_ROW_HEIGHT" 
> 
<TextView 
    android:text="Name" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/textName" 
    android:padding="10dp"/> 
</LinearLayout> 
+0

感謝您的解決方案,但我只是想知道如何listView呈現其行和調整行的高度 –

+0

@KisungTae使用尺寸文件調整行高度............ –

0

我覺得你可以考慮的ListView爲允許在其中顯示的其他意見,這是一個容器的區域。在你的情況下,如果視圖(TextView)爲wrap_content,則表示只佔用盡可能多的空間(垂直)。因此,ListView可能有多個。

如果這是您想知道的實際計算結果,那麼雖然我記得看到了一些東西,但我無法回想起何時何地我看到了這些信息。