2014-02-21 44 views
0

我正在android應用程序上工作。我附加了8個片段和一個viewpager進行滑動。它的工作,但刷卡時stackoverflow錯誤。以下是我的fragmentactivity。在viewpager片段中的stackoverflow錯誤

public class HomeScreen extends FragmentActivity { 

public InsuranceFragmentAdapter mAdapter; 
private ViewPager mPager; 

public String value; 
public PageIndicator mIndicator; 
public static int cPosition = 0; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.themed_circles); 

    mAdapter = new InsuranceFragmentAdapter(getSupportFragmentManager(), 
      HomeScreen.this); 

    mPager = (ViewPager) findViewById(R.id.pager); 
    mPager.setAdapter(mAdapter); 

    mIndicator = (CirclePageIndicator) findViewById(R.id.indicator); 
    mIndicator.setViewPager(mPager); 
    // mIndicator.setCurrentItem(2); 

    mIndicator 
      .setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 


       @Override 
       public void onPageSelected(int position) { 

       } 

       @Override 
       public void onPageScrolled(int position, 
         float positionOffset, int positionOffsetPixels) { 

       } 

       @Override 
       public void onPageScrollStateChanged(int state) { 

       } 
      }); 


} 

} 

和我的適配器類是以下

public class InsuranceFragmentAdapter extends FragmentPagerAdapter { 
Context contx; 


public InsuranceFragmentAdapter(FragmentManager fm, Context ctx) { 

    super(fm); 
    this.contx = ctx; 


} 

@Override 
public Fragment getItem(int position) { 
    Fragment fragment = null; 
    switch (position) { 
    case 0: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentPolicyListing.class.getName()); 
     break; 
    case 1: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentBasicPersonal.class.getName()); 
     break; 


    case 2: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentationNomineeDetails.class.getName()); 
     break; 
    case 3: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentFamilyHistory.class.getName()); 
     break; 

    case 4: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentPolicyDetails.class.getName()); 
     break; 

    case 5: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentFemale.class.getName()); 
     break; 
    case 6: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.Fragmentmedical.class.getName()); 
     break; 
    case 7: 
     fragment = Fragment.instantiate(contx, com.lic.fragments.FragmentCheckList.class.getName()); 
     break; 
    } 

    return fragment; 
} 

@Override 
public int getCount() { 
    // Show 3 total pages. 
    return 8; 
} 

// @Override 
// public CharSequence getPageTitle(int position) { 
// return TestFragmentAdapter.CONTENT[position % CONTENT.length]; 
// } 

// @Override 
// public int getIconResId(int index) { 
// return ICONS[index % ICONS.length]; 
// } 

public void setCount(int count) { 
    // if (count > 0 && count <= 10) { 
    // mCount = count; 
    // notifyDataSetChanged(); 
    // } 
} 

}

我的片段類的,一個是下面

public class FragmentationNomineeDetails extends Fragment { 


private String nominNameStr; 
private String nomindobStr; 
private String nominageStr; 
private String nominrelationshipStr; 
private EditText nomini_name_et; 
private TextView nomi_dob_tv; 
private EditText nomi_age_et; 
private EditText nomi_relationship_et; 
private View layout; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
layout = inflater.inflate(R.layout.fragment_nomination_details, 
      container, false); 
    Button save = (Button) layout.findViewById(R.id.save); 
    nomini_name_et = (EditText) layout 
      .findViewById(R.id.nomini_name_et); 
    nomi_dob_tv = (TextView) layout.findViewById(R.id.nomi_dob_tv); 
    nomi_age_et = (EditText) layout.findViewById(R.id.nomi_age_et); 
    nomi_relationship_et = (EditText) layout.findViewById(R.id.nomi_relationship_et); 
    setlistener(); 


    return layout; 
} 


@Override 
public void onDestroyView() { 
    // TODO Auto-generated method stub 
    super.onDestroyView(); 
    layout=null; 
} 
} 

其工作。我可以滑動到任何片段,但與4或5刷卡stackoverflow錯誤發生。 以下是我的logcat。

02-21 14:45:02.817: E/AndroidRuntime(24463): FATAL EXCEPTION: main 
02-21 14:45:02.817: E/AndroidRuntime(24463): java.lang.StackOverflowError 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.widget.Editor.drawHardwareAccelerated(Editor.java:1664) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.widget.Editor.onDraw(Editor.java:1563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.widget.TextView.onDraw(TextView.java:5974) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14853) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.widget.FrameLayout.draw(FrameLayout.java:467) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.widget.ScrollView.draw(ScrollView.java:2276) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13739) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.support.v4.view.ViewPager.draw(ViewPager.java:2157) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153)  
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13739) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.widget.FrameLayout.draw(FrameLayout.java:467) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14856) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13744) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.drawChild(ViewGroup.java:3316) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3153) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13739) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.getDisplayList(View.java:13786) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at android.view.View.draw(View.java:14563) 
02-21 14:45:02.817: E/AndroidRuntime(24463): at  android.view.ViewGroup.drawChild(ViewGroup.java:3316) 

我張貼我的一個片段xml file.please看看,讓我知道它的任何問題。

<?xml version="1.0" encoding="utf-8"?> 

<com.lic.helper.CommonHeader 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
</com.lic.helper.CommonHeader> 
<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:background="@color/gray_bg_container" 
    android:padding="1dp" > 

    <RelativeLayout 
     android:id="@+id/relatve_top" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp" 
     android:background="@drawable/gray_top_round_background" 
     android:padding="8dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="5dp" 
      android:text="Nomination Details" 
      android:textColor="@color/white" /> 
    </RelativeLayout> 




    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/relatve_top" 
     android:layout_marginLeft="5dp" 
     android:layout_marginRight="5dp" 
     android:background="@drawable/bottom_rounded_white_layout" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:layout_margin="10dip" 
      android:layout_marginTop="0dp" 
      android:background="#F8F8F8" 
      android:orientation="vertical" > 



      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="#F1F0EE" 
       android:gravity="center" 
       android:orientation="horizontal" 
       android:weightSum="10" > 

       <ImageView 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="2.5" 
        android:padding="5dp" 
        android:src="@drawable/ic_name" /> 

       <EditText 
        android:id="@+id/nomini_name_et" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="7.5" 
        android:background="#fff" 
        android:hint="Nominees Name" 
        android:paddingLeft="5dp" 
        android:paddingRight="5dp" 
        android:textColor="#000" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:background="#F1F0EE" 
       android:gravity="center" 
       android:orientation="horizontal" 
       android:weightSum="10" > 

       <ImageView 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="2.5" 
        android:padding="5dp" 
        android:src="@drawable/ic_name" /> 

       <TextView 
        style="@android:style/Widget.EditText" 
        android:id="@+id/nomi_dob_tv" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="7.5" 
        android:background="#fff" 
        android:hint="Date of Birth" 
        android:paddingLeft="5dp" 
        android:paddingRight="5dp" 
        android:textColor="#000" 
        android:clickable="true"/> 
      </LinearLayout> 





      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:background="#F1F0EE" 
       android:gravity="center" 
       android:orientation="horizontal" 
       android:weightSum="10" > 

       <ImageView 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="2.5" 
        android:padding="5dp" 
        android:src="@drawable/ic_location" /> 

       <EditText 
        android:id="@+id/nomi_age_et" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="7.5" 
        android:background="#fff" 
        android:hint="Age" 
        android:paddingLeft="5dp" 
        android:paddingRight="5dp" 
        android:textColor="#000" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="2dp" 
       android:background="#F1F0EE" 
       android:gravity="center" 
       android:orientation="horizontal" 
       android:weightSum="10" > 

       <ImageView 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="2.5" 
        android:padding="5dp" 
        android:src="@drawable/ic_location" /> 

       <EditText 
        android:id="@+id/nomi_relationship_et" 
        android:layout_width="0dp" 
        android:layout_height="match_parent" 
        android:layout_weight="7.5" 
        android:background="#fff" 
        android:hint="Relationship" 
        android:paddingLeft="5dp" 
        android:paddingRight="5dp" 
        android:textColor="#000" /> 
      </LinearLayout> 





















      <RelativeLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="20dp" > 

       <Button 
        android:id="@+id/save" 
        android:layout_width="fill_parent" 
        android:layout_height="50dp" 
        android:layout_alignParentBottom="true" 
        android:layout_marginBottom="12dp" 
        android:layout_marginLeft="5dp" 
        android:layout_marginRight="5dp" 
        android:padding="8dp" 
        android:layout_marginTop="5dp" 
        android:background="@drawable/rounded_orange_button_bg" 
        android:text="@string/save" 
        android:textColor="#fff" /> 
      </RelativeLayout> 
     </LinearLayout> 
    </ScrollView> 







    </RelativeLayout> 
</LinearLayout> 
+0

您的佈局更換

layout = inflater.inflate(R.layout.fragment_nomination_details, container, false); 

可以極大地改善試試看吧。刪除'relatve_top'佈局,只保留'textView1'。同樣,將ImageView和EditText合併爲一個嵌入式'drawableLeft'的EditText,並移除它的父LinearLayout容器。也許這種優化可能有助於解決SO問題。 – Vino

回答

2

layout = inflater.inflate(R.layout.fragment_nomination_details, 
     null, false); 
+0

試過但相同的結果..堆棧溢出異常 – sarath

+0

@sarath:你可能在fragment中有'太多嵌套的佈局',這就是爲什麼它會發生。嘗試'減少'layouts的數量。你可以'使用RelativeLayout而不是LinearLayout'減少佈局的數量 –

+0

用我的一個片段xml文件編輯我的問題。請看一看。 – sarath