我正在尝试使用 Listview/customadapter 创建人员列表。行显示速度非常快,但即使在相当快的设备上滚动也非常慢。我尝试了几个建议,除了使用 asynchtask 希望将其作为最后的手段,但似乎没有任何提高性能的方法。最后,作为使用 asynchtask 之前的最后一枪,我尝试删除适配器的 getview 方法中的所有处理。现在它所做的只是从 xml 扩展 View 并显示空白行。我注意到即使那样滚动速度也没有提高。所以我怀疑原因可能是我的布局结构。 我可以做些什么来让它更快吗?任何帮助,将不胜感激。提前致谢。
<TextView android:id="@+id/mId" android:text="TextView"
android:layout_width="0px" android:layout_height="0px"></TextView>
<TextView android:id="@+id/phone" android:layout_height="0px"
android:layout_width="0px"></TextView>
<TextView android:id="@+id/email" android:layout_height="0px"
android:layout_width="0px"></TextView>
<ImageView android:id="@+id/imageView1" android:layout_width="match_parent"
android:layout_height="110dp" android:adjustViewBounds="true"
android:scaleType="fitXY" android:src="@drawable/bl_row_bg"></ImageView>
<TextView android:paddingTop="9.7dp" android:id="@+id/name"
android:paddingLeft="25.88dp" android:text="xxxx"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textColor="@android:color/black" android:lines="1"
android:ellipsize="end" android:textStyle="bold"></TextView>
<ImageView android:src="@drawable/default_avatar" android:id="@+id/image1"
android:layout_height="110dp" android:layout_width="110dp"
android:scaleType="fitXY" android:paddingTop="6.47dp"
android:paddingBottom="6.47dp" android:paddingRight="6.47dp"
android:layout_alignParentRight="true"></ImageView>
<TextView android:id="@+id/txt1" android:paddingLeft="25.88dp"
android:text="Turning 24" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_below="@+id/name"
android:textColor="@android:color/black"></TextView>
<TextView android:id="@+id/txt2" android:paddingLeft="25.88dp"
android:text="23 Days to go" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_below="@+id/txt1"
android:textColor="@android:color/black"></TextView>
<ImageView android:layout_height="64.7dp" android:src="@drawable/ss_image2"
android:id="@+id/image2" android:layout_width="64.7dp"
android:scaleType="fitEnd" android:layout_alignBottom="@+id/imageView1"
android:layout_alignParentRight="true"></ImageView>
<ImageView android:src="@drawable/bl_date_background"
android:id="@+id/datebg" android:layout_height="110dp"
android:layout_width="25dp"></ImageView>
<ImageView android:id="@+id/icon1"
android:layout_toRightOf="@+id/datebg" android:layout_height="30dp"
android:layout_width="30dp" android:layout_alignBottom="@+id/imageView1"></ImageView>
<ImageView android:id="@+id/icon2"
android:layout_toRightOf="@+id/icon1" android:layout_height="30dp"
android:layout_width="30dp" android:layout_alignBottom="@+id/imageView1"></ImageView>
<ImageView android:id="@+id/icon3"
android:layout_toRightOf="@+id/icon2" android:layout_height="30dp"
android:layout_width="30dp" android:layout_alignBottom="@+id/imageView1"></ImageView>
<ImageView android:id="@+id/icon4" android:layout_toRightOf="@+id/icon3"
android:layout_height="30dp" android:layout_width="30dp"
android:layout_alignBottom="@+id/imageView1"></ImageView>
<ImageView android:id="@+id/icon5"
android:layout_toRightOf="@+id/icon4" android:layout_height="30dp"
android:layout_width="30dp" android:layout_alignBottom="@+id/imageView1"></ImageView>
<TextView android:id="@+id/date" android:text="Tue, Dec 12"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_alignParentLeft="true" android:textColor="@android:color/black"
android:textStyle="bold" android:gravity="center" android:visibility="invisible"></TextView>
最佳答案
尝试跟随
ListView lv = getListView();
lv.setCacheColorHint(Color.TRANSPARENT); // not sure if this is required for you.
lv.setFastScrollEnabled(true);
lv.setScrollingCacheEnabled(false);
关于Android - 即使没有在适配器的 getView 方法中进行任何处理,带图像的 ListView 滚动速度也太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579570/