要件:
listViewに円グラフを追加します。
採用したアプローチ:カスタムリストアダプターを作成し、円グラフのプレースホルダーであるlinearlayoutを作成します。achartEngineを使用して、実行時に円グラフを作成し、プレースホルダーに添付します。
問題:円グラフのサイズをスクロールすると、望ましくない変化が発生します。
理由としては、listviewがビューを動的に生成するため、アダプターのカスタムレイアウトでLinearLayoutに使用できるサイズがスクロール中に変化するため、fill_parentパラメーターを使用して円グラフビューをアタッチすると、サイズが変化することが考えられます。
- 編集 -
アダプタのレイアウト
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#A0FAF8CC"
android:orientation="horizontal"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:baselineAligned="false" >
<LinearLayout
android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:ellipsize="end"
android:gravity="left"
android:paddingLeft="10dp"
android:text="@string/shopping"
android:textColor="@android:color/black"
android:textStyle="bold" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="left"
android:text="@string/budget"
android:paddingLeft="10dp"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/allTotalTypeBudget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="right"
android:textColor="@android:color/black"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="left"
android:paddingLeft="10dp"
android:text="@string/expense"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/expenseTotalTypeBudget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="right"
android:textColor="@android:color/black"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="left"
android:paddingLeft="10dp"
android:text="@string/remaining"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/remainingTotalTypeBudget"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="right"
android:textColor="@android:color/black"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/chartView"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="0.50"
android:clickable="false"
android:gravity="center" >
</LinearLayout>
</LinearLayout>