2012-04-26 37 views
0

我有一個Fragment Activity託管一個MapView和一個包含ListView的TabView。 我用SlidingDrawer包裝TabView的片段。 問題是,當我從底部拉出SlidingDrawer到頂部,應用程序總是崩潰,我得到一個Stackoverflow錯誤。我不確定我出錯的地方,但我不知道我需要修復的是什麼。任何人都可以爲我提供解決方案嗎?由於顯示TabView託管ListView的片段上的Stackoverflow

片段XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <fragment android:id="@+id/my_map_fragment1" 
       android:name="com.wwh.activities.MyMapFragment" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" > 
      <!-- Preview: [email protected]/my_map_fragment --> 
    </fragment> 

    <SlidingDrawer android:id="@+id/drawer" android:handle="@+id/handle" 
     android:content="@+id/my_tab_fragment" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:orientation="vertical" 
     android:layout_gravity="bottom"> 

    <fragment android:id="@+id/my_tab_fragment" 
       android:name="com.wwh.activities.MyTabFragment" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" > 

    </fragment> 


      <ImageView android:id="@+id/handle" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:background="@drawable/list_frame" /> 

</SlidingDrawer> 

</RelativeLayout> 

TabView的XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
     android:layout_width="fill_parent" android:layout_height="fill_parent"> 



<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
    <LinearLayout android:orientation="vertical" 
     android:layout_width="wrap_content" android:layout_height="wrap_content"> 
     <HorizontalScrollView android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:fillViewport="true" 
      android:background="@drawable/tab_bg" 
      android:scrollbars="none"> 
     <TabWidget android:id="@android:id/tabs" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" /> 
     </HorizontalScrollView> 
     <FrameLayout android:id="@android:id/tabcontent" 
      android:layout_width="wrap_content" android:layout_height="wrap_content">  
     </FrameLayout> 
    </LinearLayout> 
</TabHost> 


</LinearLayout> 

的ListView XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#e7eff2" 
    > 

<CheckBox 
      android:id="@+id/cb_tab_sort" 
      android:layout_width="320dp" 
      android:layout_height="34dp" 
      android:background="@drawable/checkbox_background" 
      android:button="@drawable/check_tab_sort" /> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@drawable/list_bg" 
    > 


<ListView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@android:id/list" 
    android:cacheColorHint="#00000000" 
    android:divider="#ffffff" 
    android:dividerHeight="2px" 
    /> 

</LinearLayout> 
</LinearLayout> 

列表項XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@android:color/transparent"> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    android:layout_marginBottom="12dp" 
    android:layout_marginTop="7dp" 
    android:background="@android:color/transparent" 
    android:gravity="center"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" android:layout_height="fill_parent" android:orientation="vertical" android:background="@android:color/transparent" 
    android:gravity="center" android:layout_marginLeft="5dp" 
    android:layout_marginBottom="2dp" 
    android:layout_marginTop="2dp"> 

    <LinearLayout 
    android:layout_width="55.33dp" 
    android:layout_height="52.67dp" 
    android:background="@drawable/list_frame_blank" 
    android:padding="5dp" 
    > 


    <ImageView 
    android:id="@+id/image" 
    android:layout_width="39.33dp" 
    android:layout_height="41.67dp" 
    android:layout_gravity="center" 
    android:layout_marginLeft="2.5dp" 
    android:layout_marginBottom="5dp" 
    /> 


    </LinearLayout> 

    </LinearLayout> 

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:orientation="vertical"> 
     <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
     <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/txt_title" 
     android:layout_marginLeft="5dp" 
     android:textStyle="bold" 
     android:textColor="#cc3333" 
     android:layout_weight="0.1" 
     android:textSize="20sp"/> 

     <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/txt_distance" 
     android:textStyle="bold" 
     android:textColor="#000000" 
     android:textSize="18sp"/> 

     <ImageView 
     android:layout_width="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_alignParentRight="true" 
     android:layout_marginLeft="15dp" 
     android:layout_marginRight="7dp" 
     android:layout_marginTop="2dp" 
     android:layout_height="wrap_content" 
     android:background="@drawable/list_arrow"/> 


     </LinearLayout> 
     <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     > 
     <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/txt_list_desc" 
     android:layout_marginLeft="5dp" 
     android:layout_marginTop="5dp" 
     android:textColor="#000000" 
     android:ellipsize="end" 
     android:singleLine="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:textSize="16sp"/> 

      <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/txt_more" 
      android:maxLength="103" 
      android:textColor="#666666" 
      android:ellipsize="marquee" 
      android:singleLine="false" 
      android:textSize="14sp" 
      android:layout_below="@+id/txt_list_desc" 
      android:layout_alignLeft="@+id/txt_list_desc" 
      /> 

      <ImageView 
      android:id="@+id/list_icon" 
      android:layout_width="wrap_content" 
      android:layout_gravity="center_vertical" 
      android:layout_marginLeft="15dp" 
      android:layout_marginRight="5dp" 
      android:layout_height="wrap_content" 
      android:background="@drawable/list_icon_historical" 
      android:layout_alignParentRight="true" 
      android:layout_below="@+id/txt_list_desc" 
      android:layout_alignRight="@+id/txt_list_desc" 
      /> 


     </RelativeLayout>   
</LinearLayout> 
</LinearLayout> 
</LinearLayout> 

堆棧跟蹤:

04-26 15:54:34.155: E/AndroidRuntime(13873): FATAL EXCEPTION: main 
04-26 15:54:34.155: E/AndroidRuntime(13873): java.lang.StackOverflowError 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.text.Layout.getLineForOffset(Layout.java:880) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.text.Layout$Ellipsizer.getChars(Layout.java:2086) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.text.Layout$Ellipsizer.charAt(Layout.java:2078) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.text.Layout.getLineVisibleEnd(Layout.java:1040) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.text.Layout.draw(Layout.java:270) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.widget.TextView.onDraw(TextView.java:4443) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6933) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6936) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6936) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.widget.AbsListView.dispatchDraw(AbsListView.java:1627) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.widget.ListView.dispatchDraw(ListView.java:3215) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6936) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.widget.AbsListView.draw(AbsListView.java:3005) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6936) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6936) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.widget.SlidingDrawer.dispatchDraw(SlidingDrawer.java:304) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.View.draw(View.java:6936) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.widget.FrameLayout.draw(FrameLayout.java:357) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1917) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewRoot.draw(ViewRoot.java:1530) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewRoot.performTraversals(ViewRoot.java:1266) 
04-26 15:54:34.155: E/AndroidRuntime(13873): at android.view.ViewRoot.handleMessage(ViewRoot.java: 
+0

確保您的XML資源都有不同的名稱...如果兩個文件互相引用,那麼您將在運行時得到一個stackoverflow錯誤 – 2012-04-26 14:25:18

+0

您是否指的是在不同文件中使用的元素ID? – 2014-05-07 17:09:13

回答

0

當填補元素android:id="@+id/txt_list_desc"你趕上例外。當您將長文本添加或設置爲TextView時,通常會發生這種情況,文本編號爲android:ellipsize="end"android:singleLine="true"。說更多我需要看填充您的項目的代碼。