2012-05-29 5 views
2

문자열 데이터 배열이 3 개 있으며 어댑터를 통해 목록에서 확장하려고합니다. 문제는 수정 프로그램입니다 행의 높이와 나는 심지어 내가, 높이가안드로이드, 어떻게 목록 어댑터에서 행의 높이를 늘리시겠습니까?

이것은 행의 내 XML 코드 :(적용되지 않습니다 30dip, 50dip, 100dip을 넣어 증가 :

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout 
    xmlns:android     = "http://schemas.android.com/apk/res/android" 
    android:layout_width   = "fill_parent" 
    android:layout_height   = "fill_parent" // even when i change it to 30dip, 50dip and etc. doesn't take effect 
    android:background    = "@color/septator_grey_light"> 


    <TextView 
     android:id      = "@+id/tvStatisticsTitle" 
     android:layout_width   = "wrap_content" 
     android:layout_height   = "wrap_content" 
     android:layout_centerInParent = "true" 
     android:gravity     = "center_vertical|center" 
     android:text     = "@string/test_10" 
     style       = "@style/simpletopic.black" /> 


    <TextView 
     android:id      = "@+id/tvStatisticsHost" 
     android:layout_width   = "wrap_content" 
     android:layout_height   = "wrap_content" 
     android:layout_alignBaseline = "@+id/tvStatisticsTitle" 
     android:layout_alignBottom  = "@+id/tvStatisticsTitle" 
     android:layout_alignParentLeft = "true" 
     android:layout_marginLeft  = "20dp" 
     android:text     = "@string/test_02" 
     style       = "@style/simpletopic.black.big" /> 


    <TextView 
     android:id      = "@+id/tvStatisticsGeust" 
     android:layout_width   = "wrap_content" 
     android:layout_height   = "wrap_content" 
     android:layout_alignBaseline = "@+id/tvStatisticsTitle" 
     android:layout_alignBottom  = "@+id/tvStatisticsTitle" 
     android:layout_alignParentRight = "true" 
     android:layout_marginRight  = "20dp" 
     android:text     = "@string/test_02" 
     style       = "@style/simpletopic.black.big" /> 

</RelativeLayout> 

및 내 어댑터 코드는 다음과 같습니다.

public class StatisticsAdapter extends BaseAdapter { 

    private final String TAG = "*** StatisticsAdapter ***"; 
    private final String[] TITLE = {"Shots on Target", "Shots Wide", "Offsides", "Corners", "Possession", "Fouls"}; 

    private LayoutInflater myInflater; 

    private String[] hostInfo; 
    private String[] guestInfo; 

    public StatisticsAdapter(Context context) { 
     myInflater = LayoutInflater.from(context); 

     Log.i(TAG, "Adapter setuped successfully."); 
    } 

    public void setData(Statistics statisticsItems) { 

     hostInfo = new String[6]; 
     guestInfo = new String[6]; 

     hostInfo[0] = statisticsItems.getHomeTeamShotsTarget(); 
     hostInfo[1] = statisticsItems.getHomeTeamShotsWide(); 
     hostInfo[2] = statisticsItems.getHomeTeamOffsides(); 
     hostInfo[3] = statisticsItems.getHomeTeamCorners(); 
     hostInfo[4] = statisticsItems.getHomeTeamPossession(); 
     hostInfo[5] = statisticsItems.getHomeTeamFouls(); 

     guestInfo[0] = statisticsItems.getAwayTeamShotsTarget(); 
     guestInfo[1] = statisticsItems.getAwayTeamShotsWide(); 
     guestInfo[2] = statisticsItems.getAwayTeamOffsides(); 
     guestInfo[3] = statisticsItems.getAwayTeamCorners(); 
     guestInfo[4] = statisticsItems.getAwayTeamPossession(); 
     guestInfo[5] = statisticsItems.getAwayTeamFouls(); 

     Log.i(TAG, "Data passed to the adapter."); 
    } 

    @Override 
    public int getCount() { 
     return TITLE.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder;   

     if (convertView == null) { 
      convertView = myInflater.inflate(R.layout.list_statistics_adapter, null); 
      holder  = new ViewHolder(); 
      holder.tvStatisticsHost = (TextView) convertView.findViewById(R.id.tvStatisticsHost); 
      holder.tvStatisticsTitle = (TextView) convertView.findViewById(R.id.tvStatisticsTitle); 
      holder.tvStatisticsGeust = (TextView) convertView.findViewById(R.id.tvStatisticsGeust); 

      convertView.setTag(holder); 
     } else { 
      holder = (ViewHolder) convertView.getTag(); 
     } 


     holder.tvStatisticsHost.setText(hostInfo[position]); 
     holder.tvStatisticsTitle.setText(TITLE[position]); 
     holder.tvStatisticsGeust.setText(guestInfo[position]); 

     return convertView; 
    } 

    static class ViewHolder { 
     TextView tvStatisticsHost; 
     TextView tvStatisticsTitle; 
     TextView tvStatisticsGeust; 
    } 
} 

어떤 제안을 주시면 감사하겠습니다. 감사합니다

답변

3

높이 wrap_content해야합니다. 고정 높이와 폭 일부 뷰 (빈 뷰)를 추가로 사용 여백.

<View 
    android:id="@+id/view1" 
    android:layout_width="wrap_content" 
    android:layout_height="20dp" /> 

트릭을 수행해야합니다. 원하는 배경으로 배경을 변경할 수도 있습니다. (그러나 배경을 표시하려면 너비를 설정해야합니다)

+1

감사합니다. 작동합니다. 그러나 문제는 무엇입니까? 상대 레이아웃의 설정 높이가 영향을 미치지 않는 것은 버그입니까? – Hesam

+0

크기를 늘리고 TextAppearanceLarge 테마를 사용하기 위해 패딩을 사용할 수 있다고 생각합니다. –

3

getView()에서 myInflater.inflate(R.layout.list_statistics_adapter, null) 대신 myInflater.inflate(R.layout.list_statistics_adapter, parent, false)을 사용해보십시오. RelativeLayout은 parent가 지정 될 때 훨씬 잘 작동합니다.

+0

그게 더 좋은 답변입니다! 고맙습니다. – StefMa

관련 문제