我创建了一个显示特定年份的月份磁贴网格的自定义视图。
它拥有 12 个代表每个月的日期图块。它看起来像这样:
每个图块都使用以下 XML 进行膨胀:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/date_tile_margin"
android:layout_marginRight="@dimen/date_tile_margin"
android:layout_marginTop="2dp"
android:layout_marginBottom="2dp">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<Button
android:id="@+id/dateTile"
android:layout_height="@dimen/date_tile_height"
android:layout_width="@dimen/date_tile_width"
android:textColor="#B7BAAB"
/>
<com.endilo.views.LetterSpacingTextView
android:id="@+id/dateTileCenterLabel"
android:layout_width="@dimen/date_tile_height"
android:layout_height="@dimen/date_tile_width"
android:gravity="center_vertical|center_horizontal"
android:scaleX="0.6"
android:textSize="40sp"
android:textColor="#BCBFAF"/>
</FrameLayout>
<CheckBox
android:id="@+id/dateTileCheckbox"
android:button="@drawable/check_green"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="-20dp"
android:focusable="false"/>
<TextView
android:id="@+id/dateTileMonthLabel"
android:layout_width="wrap_content"
android:layout_marginTop="-12dp"
android:text="Jan"
android:layout_height="wrap_content"/>
</LinearLayout>
DateTile
当谈到一年,这是一个单一的任务时,每次膨胀大约需要 30-50 毫秒DateGridView
~ 40*12 = 0.5 秒来膨胀一年。我需要膨胀至少 3 页,因为我在显示前一年和明年的页面适配器中使用它。
有什么方法可以使通货膨胀更快或重复使用相同的布局来更快地创建 12 个单独的日期图块?