2011-08-03 5 views
0

클릭하면 (특정 부모와 일치) 목록보기에서 행의 높이를 늘리려고하지만 다른 행의 높이가 영향을받지 않아야합니다.클릭하면 목록보기의 행 높이를 늘리는 방법은 무엇입니까?

이것은 코드 수정 후 수행 한 작업입니다. 지금은 항목의 클릭에있는 목록은 행을 보여 다른 XML을 참조하여 시작해야 함을 원하는 다른

public class ExpandableListActivity extends ListActivity 
{ 

Context context; 
int selectedPosition = 0; 


String [] mTitles; 
String [] mDialogues; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    mTitles = getResources().getStringArray(R.array.state_name); 
    mDialogues = getResources().getStringArray(R.array.capital_name); 
    // Use our own list adapter 
    setListAdapter(new ListAdapter(this)); 
} 


@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{  

} 


private class ListAdapter extends BaseAdapter { 
    public ListAdapter(Context context) 
    { 

    } 



    public int getCount() { 
     return mTitles.length; 
    } 

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


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


    public View getView(int position, View convertView, ViewGroup parent) { 
     ViewHolder holder; 
     LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
     if(convertView == null) { 
       holder = new ViewHolder(); 
       convertView = inflater.inflate(R.layout.listlayout, parent, false); 

       holder.text = (TextView)convertView.findViewById(R.id.textView1); 
       convertView.setTag(holder); 
      } 

     else 
     { 
      holder = (ViewHolder) convertView.getTag(); 
     } 
     holder.text.setText(mTitles[position]); 

     return convertView; 
    } 
} 
} 
    class ViewHolder { 
    TextView text; 
    } 

답변

1
변경 (CursorAdapter의 경우의 Bindview) 의 LayoutParams로를 사용자 정의 어댑터와의 getView에서 사용해야합니다

" match_parent "위치 == clickedPosition거나 경우"기본 값은 "제안에 대한 다른

static class ViewHolder { 
    TextView text; 
} 

private final LayoutParams MATCH_PARENT = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
private final LayoutParams WRAP_CONTENT = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

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

    if(convertView == null) { 
     holder = new ViewHolder(); 
     convertView = mLayoutInflater.inflate(R.layout.my_layout, parent, false); 

     holder.text = (TextView)convertView.findViewById(R.id.text); 
     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 

    holder.text.setText("SomeText")); 

    if(position == selectedPosition) { 
     convertView.setLayoutParams(MATCH_PARENT); 
    } else { 
     convertView.setLayoutParams(WRAP_CONTENT); 
    } 

    return convertView; 
} 
+0

덕분에, 나는 사용자 정의 어댑터의 getView를 추가 한 수 – Prachur

+0

경우 몇 가지 코드를 넣어주십시오. selectedPosition을 전달해야합니다. – Maxim

+0

코드 맥심을 가져 주셔서 감사합니다. 또한 특정 행에 데이터를 표시하기 위해 listview의 행을 클릭 할 때 다른 XML을 사용하는 방법을 알려 주실 수 있습니까? – Prachur

관련 문제