我的 ListView 有问题。ListView 的第一个元素是一个不会改变的 View。其他元素在 getView 方法中动态创建。问题是,第一个元素有时会冻结,并且其中的进度条不再转动。仅当我向下滚动然后再次向上滚动到第一个元素时才会发生这种情况。知道如何解决这个问题吗?
以下代码已缩短,仅包含相关部分:
ListViews 适配器:
public class MyAdapter extends ArrayAdapter<String>{
private View main_control;
public PictureShowAdapter(Context context, ArrayList<String> URLs){
super(context, R.layout.picture_show_items, URLs);
LayoutInflater li = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
main_control = li.inflate(R.layout.main, null, false);
}
public View getView(final int position, View arg1, ViewGroup parent) {
if(position == 0){
return main_control;
} else{
//...create and return other items
}
}
}
布局 main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="#dddddd" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleInverse"
android:layout_width="20dp"
android:layout_height="20dp"
android:visibility="gone" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:text=""
android:visibility="gone" />
</LinearLayout>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:hint="@string/mainActivity_textView_Hint"
android:singleLine="true"
android:inputType="textUri"
android:imeOptions="actionGo"
android:text="" >
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="onClickDownload"
android:text="@string/mainActivity_button" />