2012-09-13 132 views
1

我想爲我的列表視圖使用兩種佈局。當我滾動列表視圖時,佈局將更改爲第一個。 代碼:使用兩種佈局滾動列表視圖時更改佈局

public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 

    View vi = convertView; 
    if (convertView == null) fll = flag.get(position); 
    if(fll.equals("I")) { 
    vi = inflater.inflate(R.layout.conersation_replay, null); 
    TextView t1 = (TextView)vi.findViewById(R.id.mess1); 
    TextView t2 = (TextView)vi.findViewById(R.id.name1); 
    TextView t3 = (TextView)vi.findViewById(R.id.time1); 

    t1.setText(message.get(position)); 
    t2.setText(name); 
    t3.setText(time.get(position)); 
    } 
    else { 
    vi = inflater.inflate(R.layout.conversation_custome, null); 
    TextView t1 = (TextView)vi.findViewById(R.id.mess); 
    TextView t2 = (TextView)vi.findViewById(R.id.name); 
    TextView t3 = (TextView)vi.findViewById(R.id.time); 
    t1.setText(message.get(position)); 
    t2.setText(name); 
    t3.setText(time.get(position)); 
    } 

    return vi; 
} 
+0

什麼希望仍不清楚兄弟? –

+0

它像一個消息傳遞線程列表視圖。以一種顏色傳入消息,以另一種顏色傳出消息。 – Akhil

回答

1

你需要在這兩種佈局相同的控件ID並做像下面

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



    chati = mlist.get(position); 

    if(fll.equals("I")) { 
      // your layout here  
     convertView = ((Activity)mcontext).getLayoutInflater().inflate(R.layout.conersation_replay, null); 
    }else{ 
     convertView = ((Activity)mcontext).getLayoutInflater().inflate(R.layout.conversation_custome, null);    
    }  

     TextView t1 = (TextView)convertView.findViewById(R.id.mess); 
     TextView t2 = (TextView)convertView.findViewById(R.id.name); 
     TextView t3 = (TextView)convertView.findViewById(R.id.time); 
     t1.setText(message.get(position)); 
     t2.setText(name); 
     t3.setText(time.get(position)); 

    return convertView; 
} 
+0

但同樣的問題 – Akhil

+0

麥克更改爲要求? –

+0

in if(fll.equals(「I」))讓你的字符串? –

1

如果兩個佈局的區別僅在於顏色,然後再用convertView和調整elemtns的顏色(節省您查看充氣)。

如果視圖不同(說 - 有不同的圖標和元素),使用根元素的ID來確定提供的視圖的種類,以確定它是否是合適的類型,並且只有在沒有時才膨脹。

也可以考慮使用ViewHolder模式來避免文本視圖查詢:

http://www.jmanzano.es/blog/?p=166

+0

對不起,我能理解。 – Akhil

+0

但圖像也在變化 – Akhil

+0

仍然是同樣的問題 – Akhil