问题
I don't know what's wrong with my xml
layout. Everytime when it intent to AddMoreClaims activity, my emulator will run slowly and sometimes not responding as image shown below.
And this are the logCat
message
12-09 05:05:59.758 2688-2688/? E/RichInputConnection﹕ Unable to connect to the editor to retrieve text.
12-09 05:05:59.758 2688-2688/? W/RichInputConnection﹕ Unable to connect to the editor. Setting caps mode without knowing text.
12-09 05:05:59.760 2688-2688/? I/Choreographer﹕ Skipped 352 frames! The application may be doing too much work on its main thread.
12-09 05:05:59.783 2688-2710/? W/EGL_emulation﹕ eglSurfaceAttrib not implemented
12-09 05:05:59.784 2688-2710/? W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa30bfe80, error=EGL_SUCCESS
12-09 05:06:03.080 2808-2808/? I/Choreographer﹕ Skipped 153 frames! The application may be doing too much work on its main thread.
12-09 05:06:08.163 2808-2808/? I/Choreographer﹕ Skipped 151 frames! The application may be doing too much work on its main thread.
12-09 05:06:10.863 2808-2808/? I/Choreographer﹕ Skipped 161 frames! The application may be doing too much work on its main thread.
xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fillViewport="true"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/dark_blue"
android:weightSum="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Enter Claims Information"
android:id="@+id/textViewClaims"
android:paddingTop="30sp"
android:textSize="20dp"
android:paddingLeft="15sp"
android:textColor="@color/white"
android:layout_weight="0.05" />
<View
android:layout_marginLeft="10dp"
android:layout_width="340sp"
android:layout_height="2dp"
android:background="#c0c0c0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Claims Type : "
android:paddingTop="20sp"
android:paddingLeft="15sp"
android:textSize="17dp"
android:textColor="@color/white"
android:id="@+id/textViewClaimsType"
android:layout_weight="0.05" />
<Spinner
android:layout_width="308dp"
android:layout_marginLeft="10dp"
android:background="@color/light_gray"
android:layout_height="48dp"
android:id="@+id/spinner" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Claims Amount :"
android:paddingTop="20sp"
android:paddingLeft="15sp"
android:textSize="17dp"
android:textColor="@color/white"
android:id="@+id/textViewAmount"
android:layout_weight="0.05" />
<EditText
android:layout_width="308dp"
android:layout_height="wrap_content"
android:layout_margin="10sp"
android:background="@drawable/round_corner_square"
android:id="@+id/editTextAmount"
android:paddingLeft="20dp"
android:layout_weight="0.09" />
<ImageView
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_marginTop="20dp"
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/imageView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add picture"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:layout_weight="0.05" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Enter Description"
android:paddingTop="30sp"
android:paddingLeft="15sp"
android:textSize="17dp"
android:textColor="@color/white"
android:id="@+id/textView12"
android:layout_weight="0.05" />
<EditText
android:layout_width="308dp"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/round_corner_square"
android:layout_weight="0.12"
android:paddingLeft="20dp"
android:paddingBottom="80dp"
android:layout_x="14dp"
android:layout_y="146dp"
android:id="@+id/textDescription" />
<Button
android:layout_width="159dp"
android:layout_height="wrap_content"
android:text="save"
android:layout_marginTop="20dp"
android:id="@+id/button1"
android:layout_gravity="center_horizontal"
android:layout_weight="0.05" />
</LinearLayout>
</ScrollView>
Why would this happen and how can I solve it ? Thanks
回答1:
The application may be doing too much work on its main thread.
Layouts are a key part of Android applications that directly affect the user experience. If implemented poorly, your layout can lead to a memory hungry application with slow UIs. The Android SDK includes tools to help you identify problems in your layout performance, which when combined the lessons here, you will be able to implement smooth scrolling interfaces with a minimum memory footprint.
Loading Views On Demand
Beyond simply including one layout component within another layout, you might want to make the included layout visible only when it's needed, sometime after the activity is running. This lesson shows how you can improve your layout's initialization performance by loading portions of your layout on demand.
Wrong Concept
<ImageView
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_marginTop="20dp"
android:layout_width="200dp"
android:layout_height="200dp"
android:id="@+id/imageView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add picture"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:layout_weight="0.05" />
In here you are using android:layout_weight
, Well .Then another case you set Hard coded height & Width ,That's why have problem . Avoid Hard coded Value .
来源:https://stackoverflow.com/questions/34171499/emulator-run-slowly-when-come-to-a-specific-layout