1

すべてのListView行ビューがこの xml レイアウトから (アクティビティ レイアウト インフレータによって) インフレートされる場所があります。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:baselineAligned="false"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/topic_list_item_selector"
android:orientation="horizontal"
android:paddingLeft="@dimen/list_item_padding_horizontal_big"
android:paddingBottom="@dimen/list_item_padding_vertical_big"
android:paddingTop="@dimen/list_item_padding_vertical_big" >

<LinearLayout
    android:id="@+id/topics_list_edit_row_label_color"
    android:layout_width="@dimen/label_rect_edge_size"
    android:layout_height="@dimen/label_rect_edge_size"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/topics_list_edit_row_label_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#ffffff"
        android:textSize="@dimen/label_text_size" />
</LinearLayout>

<LinearLayout
    android:id="@+id/topics_list_edit_row_text"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_weight="1"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/topics_list_edit_row_text_title"
        style="@style/DefaultText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="title" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/topics_list_edit_row_text_detail_section"
            style="@style/DetailText"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="2 sections"
            android:textColor="#818181" />

        <TextView
            android:id="@+id/topics_list_edit_row_text_detail_point"
            style="@style/DetailText"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="85 points"
            android:textColor="#818181" />
    </LinearLayout>
</LinearLayout>

</LinearLayout>

を介してアダプタでこのビューを返すとgetView()、すべてが正常に機能します。

しかし、 inTextView経由setText()でテキストを変更getView()すると、画面が回転するたびにアプリが約 1 MB 消費します。

public class TopicListAdapter extends BaseAdapter{
...
public View getView(int position, View convertView, ViewGroup parent)  {
     View rowView;

 if (convertView == null)
     {
     LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         rowView = inflater.inflate(R.layout.topics_list_edit_row, parent, false);  
         ...

         Typeface myTypeface = Typeface.createFromAsset(context.getAssets(), "Roboto-Thin.ttf");     //Added

         TextView labelT = (TextView) rowView.findViewById(R.id.topics_list_edit_row_label_text);
     labelT.setTypeface(myTypeface);   //Added
         labelT.setText("A"); //!!!! when I delete this line everything works normally !!!!
         ...
      }
      ...
 }
 }

画面が回転するたびにアクティビティ コンテキストが生き残っているのではないかと思いますが、その場合、どのように発生し、どうすれば回避できますか?

4

0 に答える 0