ListView 아이템 역순으로 표시하기

2020. 4. 16. 15:39팁/Android

ListView에서 아이템은 위에서 아래로 표시되는 것이 기본이고, 따라서 가장 위에 있는 항목이 Array의 0번 항목이 된다.

가령, 최신 데이터를 가장 위에 표기하기 위해 ListView를 역순으로 표기해야할 때가 있는데, 이를 제대로 표기하기 위해 여러 방법이 있겠지만 간단하게 사용할 수 있는 두가지를 작성한다.

 

1. ListView 위젯에 stackFromBottom 속성을 준다.

  • stackFromBottom을 레이아웃 xml에서 주고싶을 때 아래와 같이 작성한다.

      <ListView
          android:id="@+id/listview"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          andorid:stackFromBottom="true" />
  • stackFromBottom을 클래스에서 주고싶을 때 아래와 같이 작성한다.

      ListView listview;
      listview.findViewById(R.id.listview);
      listView.setStackFromBottom();

 

2. ArrayList에 삽입할 때, 앞 부분부터 삽입한다.

ArrayList의 경우 add(Object o) 함수를 사용하여 Object를 삽입하면 먼저 삽입한 Object가 가장 앞의 위치를 가지게 된다.

이를 역으로 생각해 add(Index i, Object o) 함수를 사용하여 Object를 삽입하면 가장 먼저 삽입한 Object가 뒤로 밀려나게 되고 가장 최근 삽입한 Object가 가장 앞의 위치를 가지게 된다.

  • 사용법은 일반적인 ArrayList와 다르지 않다

      ArrayList<int> arrayList = new ArrayList<>();
      for (int i = 0 ; i < 5 ; i++){
              arrayList.add(0, i);
      }
    
      출력 : 4, 3, 2, 1, 0