2014-03-03 4 views
2

Я пытаюсь установить некоторые изображения в swipeview и добавление PageControl в этой точке зрения, как указано ниже:Как вызвать removeView() при попытке установить управление страницей?

//In onCreate 
swipeView = (SwipeView) findViewById(R.id.swipe_view); 
      swipeView.setOnClickListener(this); 
      pageControl = (PageControl) findViewById(R.id.page_control); 
      pageControl.setEnabled(true); 
    setPagination(); 

private void setPagination() { 
      for (int i = 0; i < lnoitem.lnoImageList.size(); i++) 
      { 
       FrameLayout frame = new FrameLayout(MyAffairDetails.this); 
       View child = MyAffairDetails.this.getLayoutInflater().inflate(R.layout.swipe_view_affair, null); 
       frame.addView(child); 

       final ImageView imgThumb  = (ImageView) child.findViewById(R.id.imgThumb); 
       final WebView webViewThumb = (WebView) child.findViewById(R.id.WebView); 

       webViewThumb.getSettings().setLoadWithOverviewMode(true); 
       webViewThumb.getSettings().setUseWideViewPort(false); 
       webViewThumb.getSettings().setBuiltInZoomControls(false); 
       webViewThumb.setVerticalScrollBarEnabled(false); 
       webViewThumb.setScrollbarFadingEnabled(false); 
       webViewThumb.setScrollContainer(false); 
       webViewThumb.setFocusable(false); 
       webViewThumb.setClickable(false); 
       webViewThumb.setBackgroundColor(Color.parseColor("#00000000")); 

       String path = ""; 
       String name = lnoitem.lnoImageList.get(i).getBigImage(); 
       String html = "<body style='margin:0;padding:0;' ><img src='"+name+"' width='100%' height='100%' /></body>"; 
       webViewThumb.loadDataWithBaseURL(path, html, "text/html", "utf-8", ""); 

       webViewThumb.setWebViewClient(new WebViewClient() 
       { 

        @Override 
        public boolean shouldOverrideUrlLoading(WebView view, String urlNewString) { 
         return true; 
        } 

        public void onPageStarted(WebView view, String url) { } 

        @Override 
        public void onPageFinished(WebView view, String url) { 
         imgThumb.setVisibility(View.GONE); 
         webViewThumb.setVisibility(View.VISIBLE); 
        }     
       }); 

       swipeView.addView(frame);   

      } 
      swipeView.setPageControl(pageControl); 
     } 
} 

Это работает нормально, но когда я добавить новое изображение и снова вызывая метод я получаю исключение at swipeView.setPageControl (pageControl);

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first. 
at android.view.ViewGroup.addViewInner(ViewGroup.java:3339) 
at android.view.ViewGroup.addView(ViewGroup.java:3210) 
at android.view.ViewGroup.addView(ViewGroup.java:3155) 
at android.view.ViewGroup.addView(ViewGroup.java:3131) 

XML:

<RelativeLayout 
        android:id="@+id/xLinea" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="15dp" 
        android:layout_marginLeft="1dp" 

        android:layout_marginRight="1dp" 
        android:gravity="center_horizontal" > 

       <uk.co.jasonfry.android.tools.ui.SwipeView 
         android:id="@+id/swipe_view" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentTop="true" 
         android:layout_centerInParent="true" 
         android:layout_marginTop="10dp" 
         android:gravity="center|center_horizontal" 
         android:orientation="horizontal" > 
        </uk.co.jasonfry.android.tools.ui.SwipeView> 

        <uk.co.jasonfry.android.tools.ui.PageControl 
         android:id="@+id/page_control" 
         android:layout_width="150dp" 
         android:layout_height="wrap_content" 
         android:layout_below="@+id/swipe_view" 
        android:gravity="center|center_horizontal" 
        android:layout_centerHorizontal="true" 
         android:layout_marginTop="10dp" 
        android:layout_centerInParent="true" 
         android:orientation="horizontal" > 
        </uk.co.jasonfry.android.tools.ui.PageControl> 
       </RelativeLayout> 

Может кто-нибудь сказать мне, как позвонить removeview() или что делать, чтобы избежать этого исключения в указанном выше коде?

ответ

0

Propably

swipeView.setPageControl(pageControl); 

является седения swipeView в качестве родителя к PageControl. Попробуйте перед установкой этого что-то вроде этого, чтобы быть уверенным

pageControl.getParent(); 

Может быть, вы не должны включать PageControl в макете деятельности. Вместо этого

pageControl = (PageControl) findViewById(R.id.page_control); 

сделать

pageControl = new PageControl(this); 

и чем

swipeView.setPageControl(pageControl); 

должен работать.

+0

Это не сработало. – user1744952

+0

Показать результат из System.out.println (pageControl.getParent(). GetClass()); и System.out.println (pageControl.getParent(). Equals (swipeView)); –

+0

Я добавил xml, и ответ дает класс android.widget.RelativeLayout & false соответственно. – user1744952

 Смежные вопросы

  • Нет связанных вопросов^_^