我正在制作秒表应用程序,因此我有多个不断更新的TextViews文本,我在其中更新显示时钟时间的文本。
原始布局是多层LinearLayouts,以帮助我解决问题。它变得复杂,所以我切换到RelativeLayout,谷歌甚至建议提高性能。 http://developer.android.com/training/improving-layouts/optimizing-layout.html
但是,这样做后我开始遇到ANR崩溃。为什么更有效的布局会给我ANR?
相关代码,另外注意,我似乎无法再获得ANR了......
<TextView
android:id="@+id/tv_times_up"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Time's \n Up!"
android:textSize="28sp"
android:visibility="gone"
android:gravity="center" />
<LinearLayout
android:id="@+id/ll_clock_hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/tv_clock_hr"
android:layout_width="@dimen/clock_digit_width"
android:layout_height="@dimen/clock_digit_height"
android:text="00"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_colon1"
android:layout_width="@dimen/clock_colon_width"
android:layout_height="@dimen/clock_digit_height"
android:text=":"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_min"
android:layout_width="@dimen/clock_digit_width"
android:layout_height="@dimen/clock_digit_height"
android:text="00"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_colon2"
android:layout_width="@dimen/clock_colon_width"
android:layout_height="@dimen/clock_digit_height"
android:text=":"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_sec"
android:layout_width="@dimen/clock_digit_width"
android:layout_height="@dimen/clock_digit_height"
android:text="00"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_milli"
android:layout_width="@dimen/clock_milli_width"
android:layout_height="@dimen/clock_digit_height"
android:text="000"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
</merge>
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_times_up"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Time's \n Up!"
android:textSize="28sp"
android:visibility="gone" />
<RelativeLayout
android:id="@+id/ll_clock_hide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_clock_hr"
android:layout_width="@dimen/clock_digit_width"
android:layout_height="@dimen/clock_digit_height"
android:text="00"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_colon1"
android:layout_width="@dimen/clock_colon_width"
android:layout_height="@dimen/clock_digit_height"
android:layout_toRightOf="@id/tv_clock_hr"
android:text=":"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_min"
android:layout_width="@dimen/clock_digit_width"
android:layout_height="@dimen/clock_digit_height"
android:layout_toRightOf="@id/tv_clock_colon1"
android:text="00"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_colon2"
android:layout_width="@dimen/clock_colon_width"
android:layout_height="@dimen/clock_digit_height"
android:layout_toRightOf="@id/tv_clock_min"
android:text=":"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_sec"
android:layout_width="@dimen/clock_digit_width"
android:layout_height="@dimen/clock_digit_height"
android:layout_toRightOf="@id/tv_clock_colon2"
android:text="00"
android:textSize="35sp" />
<TextView
android:id="@+id/tv_clock_milli"
android:layout_width="@dimen/clock_milli_width"
android:layout_height="@dimen/clock_digit_height"
android:layout_toRightOf="@id/tv_clock_sec"
android:text="000"
android:textSize="15sp" />
</RelativeLayout>
</merge>