2016-05-03 10 views
0

同じ行の2つの要素を含むリストビュー用のアダプタを作成しようとしています。同じ行にある2つの要素のアダプタを作成する

LayoutFileは最初のLinearLayoutデータを記入し、第二のLinearLayoutを示さない2枚の画像と名前

アダプタと2つのリニアLinearLayoutsにLayout Imageを得ました。

誰かが私を助けることができますか?前もって感謝します !

XMLファイル:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
<ImageView 
     android:id="@+id/imageViewItem" 
     android:layout_width="match_parent" 
     android:layout_height="175dp" 
     android:src="@drawable/icon" /> 
<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:gravity="left"> 
<TextView 
      android:id="@+id/textViewTitleItem" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:text="Title" 
      android:gravity="center" /> 
</LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:gravity="right"> 
<TextView 
      android:id="@+id/textViewPriceItem" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:text="Price" 
      android:gravity="center" /> 
    </LinearLayout> 
</LinearLayout> 
</LinearLayout> 

それが唯一のビューですが、私は同じ行でそれを複製します。アダプタ以下

public ItemAdapter(Activity activity, int layoutResourceId) 
    { 
     this.activity = activity; 
     this.layoutResourceId = layoutResourceId; 
    } 

public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     var row = convertView; 
     var currentItem = this[position]; 
     TextView txtViewTitle; 
     TextView txtViewPrice; 
     ImageView imgViewItem; 

     if (row == null) 
     { 
      var inflater = activity.LayoutInflater; 
      row = inflater.Inflate(layoutResourceId, parent, false); 

      txtViewTitle = row.FindViewById<TextView>(Resource.Id.textViewTitleItem); 
      txtViewPrice = row.FindViewById<TextView>(Resource.Id.textViewPriceItem); 
      imgViewItem = row.FindViewById<ImageView>(Resource.Id.imageViewItem); 

     } else 
      txtViewTitle = row.FindViewById<TextView>(Resource.Id.textViewTitleItem); 
      txtViewPrice = row.FindViewById<TextView>(Resource.Id.textViewPriceItem); 
      imgViewItem = row.FindViewById<ImageView>(Resource.Id.imageViewItem); 

     txtViewTitle.Text = currentItem.Title; 
     txtViewPrice.Text = Convert.ToString(currentItem.Price); 

     return row; 
} 
+0

あなたのアダプターによって膨らんだxmlファイルと、おそらくListViewを保持する親レイアウトが必要です。 – zgc7009

+0

アダプタコードとxmlを追加してください – USKMobility

答えて

1

あなたの親LinearLayoutにオリエンテーションを提供しなかったようです。デフォルトでは水平です。 そのため、レイアウトの内容が一番上に表示されます。 リスト内のコンテンツ全体を表示するには、verticalと設定する必要があります。

android:orientation="vertical" 
関連する問題