ListView行为因Android版本而异

时间:2016-09-07 09:09:16

标签: android listview versions

我在开发一个非常简单的Android应用程序时遇到了一个奇怪的问题。我有Activity ListViewCustom 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上它甚至更滞后。

0 个答案:

没有答案