我在开发一个非常简单的Android应用程序时遇到了一个奇怪的问题。我有Activity
ListView
,Custom ArrayAdapter
支持XML layout
。在我的LinearLayout
文件中,一切都非常简单:主LinearLayout
将另一个ListView
作为LinearLayout
的容器。主LinearLayout
有一个背景图片 - png文件,分辨率为800x1280,没有透明像素。如果我的ListView
- LinearLayout
的容器也有背景图片 - 一个具有相同分辨率的png文件,但它具有透明度 - 在4.x中滚动安卓很好;在5.x变得迟钝;在6.x中变得无法滚动。同时,如果容器 - LinearLayout
没有背景或者其中一个ListView
对象中只有一个非透明背景,那么一切都很好。
我的问题是这样一个基本的东西有什么不同,使它在新版本上落后很多?对我而言,这没有任何意义,因为ListView
未被标记为已弃用。
问题与HorizontalScrollView
完全相同,因为我有另一个layout
的活动,并且它在<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:clickable="false"
android:id="@+id/main_layout"
android:measureWithLargestChild="false">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/container_list"
android:background="@drawable/bg_vert">
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lessonsList"
android:dividerHeight="0dp"
android:divider="@null"
android:scrollbarSize="1px"
android:layout_margin="12dp" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/adView">
</LinearLayout>
的所有版本的png文件中运行良好。
布局代码:
private void FillListView()
{
ArrayAdapter<Lesson> adapter = new MyListAdapter();
ListView list = (ListView) findViewById(R.id.lessonsList);
list.setAdapter(adapter);
}
private class MyListAdapter extends ArrayAdapter<Lesson>
{
MyListAdapter()
{
super(MenuActivity.this, R.layout.lesson_item, lessons);
}
@Override
public View getView(int position, final View convertView, ViewGroup parent) {
View lessonView = convertView;
if (lessonView == null)
{
lessonView = getLayoutInflater().inflate(R.layout.lesson_item, parent, false);
}
return lessonView;
}
}
示例代码:
ListView
更新:我发现此问题不仅与Activity
有关。我有View
没有任何滚动视图,只有三个不太大的图像(每个大约500x500),一个大图像(1280x800)和四个小图像(大约100x100),其中一些有他们的文字function encrypt($pure_string) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted_string = mcrypt_encrypt(MCRYPT_BLOWFISH, "!@#$%#^&*", utf8_encode($pure_string), MCRYPT_MODE_ECB, $iv);
return $encrypted_string;
}
function decrypt($encrypted_string) {
$iv_size = mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted_string = mcrypt_decrypt(MCRYPT_BLOWFISH, "!@#$%#^&*", $encrypted_string, MCRYPT_MODE_ECB, $iv);
return $decrypted_string;
}
秒。我可以看到同样奇怪的行为:在4.x上它没有任何滞后就可以正常工作,在5.x上它开始滞后而在6.x上它甚至更滞后。