[英]getView only called when scrolling on android api level 8
我有我的活動。 它在android 4.2上完美運行,但是當我在2.3(模擬器和真實設備)上運行它時,我看到一個白色的屏幕(只在底部我看到“下一個”項目的一些像素)並且它都出現在我開始滾動。
名單:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/category_browser"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:dividerHeight="1dp"
tools:listitem="@layout/category_browser_list_item" >
</ListView>
這幾項:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/category_browser_list_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill"
android:background="#ffffff"
android:clickable="true"
android:gravity="fill"
android:orientation="horizontal" >
<ImageView
android:id="@+id/category_browser_list_icon"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_gravity="fill"
android:layout_weight="0"
android:background="#ffffff"
android:contentDescription="@+id/category_browser_list_item_description"
android:src="@drawable/icon" />
<TextView
android:id="@+id/category_browser_list_title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical|start"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="@string/category_browser_title"
android:textColor="#000000"
android:textSize="24sp" />
<CheckBox
android:id="@+id/category_browser_list_checkbox"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_weight="0"
android:clickable="false" />
</LinearLayout>
代碼:
protected LinearLayout getListElementView() {
View listItem = inflator.inflate(R.layout.category_browser_list_item, null);
LinearLayout listElement = (LinearLayout)listItem.findViewById(R.id.category_browser_list_item);
return listElement;
}
public class CategoryListAdapter extends BaseAdapter {
@Override
public int getCount() {
int count = null != categories && null != categories.categories ? categories.categories.size() : 0;
Log.d(TAG, "getCount:" + count);
return count;
}
@Override
public Category getItem(int position) {
return null != categories && null != categories.categories ? categories.categories.get(position) : null;
}
@Override
public long getItemId(int position) {
return position;
}
// create a new ImageView for each item referenced by the Adapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LinearLayout listView = null;
if (convertView != null) { // if it's not recycled, initialize some attributes
listView = (LinearLayout)convertView;
}
if (listView == null) { // if it's not recycled, initialize some attributes
listView = getListElementView();
}
final Category category = getItem(position);
category.setListView(listView);
File cacheIconFile = category.getCacheIconFile();
ImageView imageView = (ImageView)listView.findViewById(R.id.category_browser_list_icon);
if (cacheIconFile.exists()) {
imageView.setImageURI(Uri.fromFile(cacheIconFile));
} else {
Drawable noIcon = getResources().getDrawable(R.drawable.icon);
imageView.setImageDrawable(noIcon);
}
// Log.i(TAG, category.name + ": " + category.iconUrl + ": " + category.downloadBaseUrl);
if (null != category.name) {
TextView textView = (TextView)listView.findViewById(R.id.category_browser_list_title);
textView.setText(category.name);
}
listView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//start downloading category with downloadmanager
//(category);
Intent intent = category.getIntent();
if (null != intent)
startActivity(intent);
else {
category.setStatus(Category.CategoryDownloadStatus.DOWNLOADING);
downloadLocalePackage(category);
}
}
});
return listView;
}
}
從ListView
XML聲明中刪除android:clipChildren="false"
。 雖然你看到的效果可能是2.2 / 2.3中的一個錯誤,在以后的版本中解決了,但這個屬性在ListView
確實沒什么用處。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.