2013-10-26 14 views
6

Witam, jestem właśnie edytował mój XML, w menu XML umieszczam kod menu slajdów, ale jest to błąd .

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff" > 

    <ListView 
     android:id="@+id/menu_content_menulist" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:padding="8dp" 

     android:cacheColorHint="@android:color/transparent" 
     android:divider="@null" 
     android:listSelector="@null"/>  
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <com.mozaik.tangsel.side_menu_scroll.ScrollerLinearLayout  
      android:id="@+id/menu_content_side_slide_layout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"   
      android:orientation="verti_ 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/content_statis"   
     android:orientation="vertical" 
     android:background="@drawable/bg_app" 
     > 

     <include layout="@layout/layout_action_bar" /> 
    <ScrollView 
     android:id="@+id/SV" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:fillViewport="true" 
     > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical" > 

      <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_margin="4dp" 
       android:background="@drawable/inbox_interface" 
       android:orientation="vertical" > 

       <LinearLayout 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 

        <ImageView 
         android:id="@+id/ImageMozaikTangsel" 
         android:layout_width="fill_parent" 
         android:layout_height="wrap_content" 
         android:layout_margin="10dip" /> 

       </LinearLayout> 

       <LinearLayout 
        android:id="@+id/tabMozaikTangselLayout" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:orientation="vertical" > 
       </LinearLayout> 

      </LinearLayout> 

     </LinearLayout> 

</ScrollView> 

    </LinearLayout> 
</com.mozaik.tangsel.side_menu_scroll.ScrollerLinearLayout> 
</RelativeLayout> 
</RelativeLayout> 

i ten błąd w LogCat

10-26 15:53:32.126: E/AndroidRuntime(10869): FATAL EXCEPTION: main 
10-26 15:53:32.126: E/AndroidRuntime(10869): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1352) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1299) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:316) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:337) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.View.measure(View.java:15193) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.View.measure(View.java:15193) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.LinearLayout.measureVertical(LinearLayout.java:681) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.LinearLayout.onMeasure(LinearLayout.java:574) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.View.measure(View.java:15193) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4816) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2217) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.View.measure(View.java:15193) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1850) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1102) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1275) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4216) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.Choreographer.doCallbacks(Choreographer.java:555) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.Choreographer.doFrame(Choreographer.java:525) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.os.Handler.handleCallback(Handler.java:615) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.os.Handler.dispatchMessage(Handler.java:92) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.os.Looper.loop(Looper.java:137) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at android.app.ActivityThread.main(ActivityThread.java:4794) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at java.lang.reflect.Method.invokeNative(Native Method) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at java.lang.reflect.Method.invoke(Method.java:511) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) 
10-26 15:53:32.126: E/AndroidRuntime(10869): at dalvik.system.NativeStart.main(Native Method) 

możesz mi pomóc, jak to naprawić?

+0

Wygląda na to, że modyfikujesz 'LayoutParams' w kodzie. Sam układ XML nie spowoduje tego. Więc włącz odpowiedni kod do pytania. – laalto

+0

Upewnij się, że importujesz poprawne pliki LayoutParams. –

+0

mój błąd rozwiązany z odpowiedzią @kalyan pvs, dziękuję za ciebie :) – bukanamay

Odpowiedz

19

W kodzie importujesz import android.widget.RelativeLayout.LayoutParams; zamiast android.view.ViewGroup.LayoutParams

więc Usuń import android.widget.RelativeLayout.LayoutParams;

i Dodaj import android.view.ViewGroup.LayoutParams

+1

Dlaczego ViewGroup.LayoutParams miałoby znaczenie? –

+1

@IgorGanapolsky ponieważ LayoutParams jest wewnętrzną klasą poszczególnych klas..RelativeLayout rozszerzyć ViewGroup, dzięki czemu można typecast ale RelativeLayout.LayoutParams nie może rozszerzyć ViewGroup.LayoutParams, więc rzuci ClassCastException –

0

wystarczy kliknąć CNT + o na usuwanie niechcianych importu

2

powinien dokonać obiekt LayoutParams układu nadrzędnego. Przykład w poniższym layoucie, aby ustawić wysokość i szerokość LinearLayout, musisz ustawić LayoutParmas z RelativeLayout, a nie LinearLayout.

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".newsblog.NewsDetailsActivity" 
    > 

     <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 


</RelativeLayout> 


//IN ACTIVITY 
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(30,30); //Parent Params 
linearLayout.setLayoutParmas(params); //Child Layout 


//If you want to set the params of the Relative Layout above. It seems it doesn't have any parent but it has a parent created by android framework which is a frame layout. So 
FrameLayout.LayoutParmas params=new FrameLayout.LayoutParmas(30, 30);//FrameLayout is a parentcreated by anroid frame work 
relativeLayout.setLayoutParmas(params); ////Here Relative layout is child 
+0

I to jest świetna odpowiedź. – AppiDevo

0

użycia poniżej kod:

imageView.setLayoutParams (nowe android.widget.RelativeLayout.LayoutParams (ViewPager.LayoutParams.MATCH_PARENT, ViewPager.LayoutParams.MATCH_PARENT));

Powiązane problemy