LinearLayout vs RelativeLayout ANR崩溃

时间:2014-07-03 04:45:00

标签: android android-linearlayout android-anr-dialog android-relativelayout

我正在制作秒表应用程序,因此我有多个不断更新的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&apos;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&apos;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>

0 个答案:

没有答案