2012-10-30 6 views
1

항목을 동적으로 추가하는 목록보기가 있습니다. 나는 (나의 선택의) 일부 아이템이 왼손쪽에 정렬되고, 어떤 것은 오른쪽에 정렬되기를 원한다. 이 일은 안드로이드의 ListView에서 가능합니까 ??Android 목록보기 항목 정렬

// 어댑터

if (convertView == null) { 
       holder = new EventViewHolder(); 
       if (type == 1) { 
        convertView = inflater.inflate(
          R.layout.multi_line_list_item, null); 
        holder.mtvMessage = (TextView) convertView 
        .findViewById(R.id.tvMessage); 
        holder.mtvMessage.setGravity(Gravity.LEFT); 
        holder.mtvMessage.setBackgroundResource(R.drawable.chatbluebox); 
        convertView.setTag(holder); 
       }else{ 
        convertView = inflater.inflate(
          R.layout.multi_line_list_item, null); 
        holder.mtvMessage = (TextView) convertView 
        .findViewById(R.id.tvMessage); 
        holder.mtvMessage.setGravity(Gravity.RIGHT); 
        holder.mtvMessage.setBackgroundResource(R.drawable.chatgreenbox); 
        convertView.setTag(holder); 

      } 

내가 그것을 할 수 있는지 알고 나에게 좋은 해결책을 제안 해주세요?

답변

1

다음을 사용하십시오.

adapter.notifyDataSetChanged(); 

그리고는

listView.setSelection(items.size()-1); 

중력 당신은 당신의 getview() 방법에 동적으로 중력을 설정해야합니다. 예를 들어

: -

textview1.setGravity(Gravity.RIGHT); 
+0

나는 중력을 설정할 수 없습니다. 중력 문제를 보여주기 위해 코드를 편집했습니다. 한번 봐주세요. –

+0

극단적 인 왼쪽 및 극단 오른쪽에 항목을 표시하고 싶습니다 ... –

+0

holder.mtvMessage.setGravity (Gravity.LEFT); 그리고 제대로 작동하지 않는 사람이 있습니까? 또는 둘 다 효과가 없습니까? –

2

대부분의 작업을 수행 할 수있는 ListView 모드 stackFromBottomtranscriptMode을 살펴보십시오.

왼쪽 및 오른쪽 셀의 항목을 정렬하려면 예를 들어 어댑터 getView 메소드에서 중력을 왼쪽 및 오른쪽으로 설정할 수 있습니다.

+0

그래, 중력 문제를 확인하겠습니다. 완료되면 알려 드리겠습니다. –

+0

나는 중력을 설정할 수 없습니다. 중력 문제를 보여주기 위해 코드를 편집했습니다. 한번 봐주세요. –

+0

극단적 인 왼쪽과 극단 오른쪽에 항목을 표시하고 싶습니다 ... –

5
android:stackFromBottom="true" 
android:transcriptMode="alwaysScroll" 

은 .. 당신의 목록보기 XML 항목에 다음 줄을 추가합니다.

그리고 좌우 정렬

유지 두 개의 레이아웃은 하나의 잘 정렬 및 기타 왼쪽 정렬 (당신이 원하는 봐 무엇이든) 다음의 getView()에서 listAdapter의 방법은 몇 가지 조건을 설정하고 원하는 이러한 XML을 팽창 XMLS

if (convertView == null) 
    if(some condition) 
     convertView = mInflater.inflate(R.layout.rightxml, null); 
    else 
     convertView = mInflater.inflate(R.layout.leftxml, null); 
    ....