我有带有项目的可滚动列表视图。每个项目都有以下布局。
我根据需要显示或隐藏带有 idcustomer_menu_index
的 LinearLayout。Ramaining 元素显示在每个方法调用中。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:id="@+id/customer_menu_index" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@color/menu_listview_item_alphabet_bg" android:orientation="horizontal" android:visibility="gone"> <TextView android:id="@+id/customer_menu_index_letter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:paddingBottom="5dp" android:paddingTop="5dp" android:text="bla" android:textColor="@color/menu_listview_item_title" android:textSize="10sp" android:textStyle="bold" android:typeface="sans" /> </LinearLayout> <RelativeLayout android:id="@+id/customer_menu_item" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/menu_listview_item_selector" android:orientation="horizontal" > <TextView android:id="@+id/customer_menu_item_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:layout_marginRight="0dp" android:paddingBottom="0dp" android:paddingTop="5dp" android:textColor="@color/menu_listview_item_title" android:textSize="10sp" android:textStyle="bold" android:typeface="sans" /> <TextView android:id="@+id/customer_menu_item_subtitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/customer_menu_item_title" android:layout_marginLeft="5dp" android:layout_marginRight="0dp" android:paddingBottom="5dp" android:paddingTop="1dp" android:textColor="@color/menu_listview_item_subtitle" android:textSize="8sp" android:textStyle="normal" android:typeface="sans" /> </RelativeLayout> </LinearLayout>
我getView
在BaseAdapter
. getView 方法的实现。
public View getView(int position, View convertView, ViewGroup parentView) {
View vi = convertView;
if (convertView == null)
{
vi = inflater.inflate(R.layout.customer_menu_index_item, null);
}
LinearLayout indexLayout = (LinearLayout) vi.findViewById(R.id.customer_menu_index);
HashMap<String, String> category = new HashMap<String, String>();
category = mData.get(position);
String currentIndexLetter = category.get(CustomerMenu.KEY_COMPANY).substring(0, 1);
if (currentIndexLetter.equals(mLastIndexLetter) == false)
{
TextView letter = (TextView) vi.findViewById(R.id.customer_menu_index_letter);
letter.setText(currentIndexLetter);
mLastIndexLetter = currentIndexLetter;
indexLayout.setVisibility(LinearLayout.VISIBLE);
}
TextView title = (TextView) vi.findViewById(R.id.customer_menu_item_title);
TextView subtitle = (TextView) vi.findViewById(R.id.customer_menu_item_subtitle);
title.setText(category.get(CustomerMenu.KEY_COMPANY));
subtitle.setText(category.get(CustomerMenu.KEY_CONTACT_PERSON));
return vi;
}
加载后工作正常。但是当我滚动列表视图时,项目的顺序发生了变化。