2012-06-04 67 views
2

我在使用traceview試圖優化我的代碼。我注意到TextView.onMeasure()和RelativeLayout.onMeasure()被調用了很多,我試圖看看是否有任何方法可以優化它。在我的ListAdapter中,我已經使用ViewHolders,根據各種谷歌會談/ Romain Guy的建議檢查currentView是否爲空。 Here is a screenshot of my costly functions in traceview.TextView和RelativeLayout onMeasure調用了很多

下面是我在列表中的佈局代碼,以證明它並不複雜。

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="178dp" 
    android:background="@color/Transparent" 
    android:clickable="true" > 
    <RelativeLayout 
     android:id="@+id/Holder" 
     android:layout_width="147dp" 
     android:layout_height="178dp" 
     android:layout_centerInParent="true" 
     android:background="@color/Transparent" > 
     <ImageView 
      android:id="@+id/userIcon" 
      android:layout_width="141dp" 
      android:layout_height="141dp" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="1dp" 
      android:background="@color/Transparent" /> 
     <RelativeLayout 
      android:id="@+id/userInfoSection" 
      android:layout_width="143dp" 
      android:layout_height="35dp" 
      android:layout_below="@id/userIcon" 
      android:layout_centerHorizontal="true" 
      android:background="@color/Black" > 
      <Button 
       android:id="@+id/MenuButton" 
       android:layout_width="31dp" 
       android:layout_height="25dp" 
       android:layout_alignParentRight="true" 
       android:scaleType="fitCenter" 
       android:src="@drawable/btn_menu" /> 
      <TextView 
       android:id="@+id/Name" 
       android:layout_width="100dp" 
       android:layout_height="17dp" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentLeft="true" 
       android:layout_marginLeft="3dp" 
       android:layout_toLeftOf="@id/MenuButton" 
       android:singleLine="true" 
       android:ellipsize="end"/> 
      <TextView 
       android:id="@+id/Age" 
       android:layout_width="39dp" 
       android:layout_height="14dp" 
       android:layout_below="@id/Name" 
       android:layout_marginRight="20dp" 
       android:layout_toLeftOf="@id/MenuButton" 
       android:singleLine="true" 
       android:ellipsize="end" 
       style="@style/Text.Default" /> 
      <TextView 
       android:id="@+id/Location" 
       android:layout_width="30dp" 
       android:layout_height="14dp" 
       android:layout_below="@id/Name" 
       android:layout_alignParentLeft="true" 
       android:layout_marginLeft="3dp" 
       android:layout_toLeftOf="@id/Price" 
       android:singleLine="true" 
       android:ellipsize="end" 
       style="@style/Text.Default" /> 
     </RelativeLayout> 
    </RelativeLayout> 
    <ImageView 
     android:id="@+id/loading_indicator" 
     android:contentDescription="@string/imageView_caption_loading" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="115dp" 
     android:layout_marginTop="5dp" 
     android:src="@drawable/loading_indicator" 
     android:visibility="gone" /> 
</RelativeLayout> 

任何幫助,將不勝感激,謝謝。

回答

0

嘗試使用linearlayout或framelayout它們比RelativeLayout更有效。 與此同時,我也很困惑TextView