ListView に問題があります。ListView の最初の要素は、変更されない View です。他の要素は getView メソッドで動的に作成されます。問題は、最初の要素が時々フリーズし、その中の progressBar が回転しなくなることです。これは、下にスクロールしてから最初の要素まで上にスクロールしたときにのみ発生します。その問題を解決する方法はありますか?
以下のコードは短縮されており、関連する部分のみが含まれています。
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" />