2013-04-23 2 views
0

У меня есть вид списка и адаптер. Моя проблема в том, что строки в списке всегда "wrap content", хотя я специально указал высоту как "150dp".Просмотров в списке еще не поступили.

Это мой адаптер:

private class LiveEventsAdapter extends BaseAdapter { 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View contentView = convertView; 
     if (contentView == null) { 
      LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      contentView = inflater.inflate(R.layout.live_match_row, null); 
      TypefaceManager.getInstance(LiveMatchActivity.this).assignTypeface(contentView); 
     } 

     if (events != null) { 
      Event event = events.getEventsList().get(position); 

      TypefaceManager typefaceManager = TypefaceManager.getInstance(LiveMatchActivity.this); 
      TextView eventText; 
      TextView minute; 
      ImageView eventIcon; 

      minute = (TextView) contentView.findViewById(R.id.live_match_minute); 
      if (event.getOrientation().equals("home")) { 
       eventText = (TextView) contentView.findViewById(R.id.home_team_event_text); 
       eventIcon = (ImageView) contentView.findViewById(R.id.home_team_event_img); 
      } else { 
       eventText = (TextView) contentView.findViewById(R.id.away_team_event_text); 
       eventIcon = (ImageView) contentView.findViewById(R.id.away_team_event_img); 
      } 
      minute.setText(event.getMinute() + "\'"); 
      eventText.setText(event.getDescription()); 
      minute.setTypeface(typefaceManager.getTypeface("bold")); 
      eventText.setTypeface(typefaceManager.getTypeface("bold")); 
     } 
} 

Вот как я "setadapter":

ListView eventsListView = (ListView) findViewById(R.id.live_match_list); 
     eventsListView.setAdapter(new LiveEventsAdapter()); 

и это мой rows layout:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="150dp" 
android:background="@drawable/background_button" > 

<TextView 
    android:id="@+id/live_match_minute" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="82&apos;" /> 

<TextView 
    android:id="@+id/home_team_event_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="false" 
    android:layout_alignRight="@+id/home_team_event_img" 
    android:layout_centerVertical="true" 
    android:paddingLeft="4dp" 
    android:paddingRight="4dp" /> 

<ImageView 
    android:id="@+id/home_team_event_img" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="4dp" 
    android:layout_toLeftOf="@+id/live_match_minute" /> 

<ImageView 
    android:id="@+id/away_team_event_img" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="false" 
    android:layout_centerVertical="true" 
    android:layout_marginLeft="4dp" 
    android:layout_toRightOf="@+id/live_match_minute" /> 

<TextView 
    android:id="@+id/away_team_event_text" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="false" 
    android:layout_centerVertical="true" 
    android:layout_toRightOf="@+id/away_team_event_img" 
    android:paddingLeft="4dp" 
    android:paddingRight="4dp" /> 

Wh y, что строки в моем списке всегда заданы одинакового размера, независимо от того, что я ввел?

ответ

0

Это НЕ будет работать.

Это то, что вы должны делать.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" > 

    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="150dp" 
    android:background="@drawable/background_button" > 

     <TextView 
      android:id="@+id/live_match_minute" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:text="82&apos;" /> 

    </RelativeLayout> 
</RelativeLayout> 

В принципе, добавьте еще один макет и укажите высоту этого макета. При работе с представлениями адаптера, определяющими высоту корневого макета, не работает.

Смежные вопросы