2013-10-26 67 views
6

你好,我只是編輯我的XML,我把幻燈片菜單代碼放在我的XML中,但它是錯誤的。

<?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> 

這個錯誤的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) 

你能幫助我,如何解決它?

+0

看起來你正在修改代碼中的'LayoutParams'。 XML佈局本身不會導致這種情況。因此,在問題中包含相關的代碼。 – laalto

+0

確保您導入了正確的LayoutParams。 –

+0

我的錯誤與@kalyan pvs的答案解決,也謝謝你:) – bukanamay

回答

19

在你的代碼導入import android.widget.RelativeLayout.LayoutParams;而不是android.view.ViewGroup.LayoutParams

所以刪除import android.widget.RelativeLayout.LayoutParams;

,並添加import android.view.ViewGroup.LayoutParams

+1

爲什麼ViewGroup.LayoutParams會有所作爲? –

+1

@IgorGanapolsky因爲LayoutParams是特定類的內部類..RelativeLayout擴展ViewGroup,所以你可以typecast,但RelativeLayout.LayoutParams不能擴展ViewGroup.LayoutParams,所以它會拋出ClassCastException –

0

只需點擊CNT + O用於刪除不需要的進口

2

你應該讓父佈局的LayoutParams對象。在下面的佈局中設置LinearLayout的高度和寬度的示例,您必須使RelativeLayout的LayoutParmas不是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

這就是很好的答案。 – AppiDevo

0

使用以下代碼:

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

相關問題