Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.12 KB | None | 0 0
  1. <FrameLayout
  2. android:layout_width="fill_parent"
  3. android:layout_height="fill_parent"
  4. android:fitsSystemWindows="false"
  5. android:background="@drawable/back_blue_translucent"
  6. xmlns:android="http://schemas.android.com/apk/res/android">
  7.  
  8. <android.support.v4.widget.DrawerLayout
  9. xmlns:android="http://schemas.android.com/apk/res/android"
  10. xmlns:tools="http://schemas.android.com/tools"
  11. android:id="@+id/drawer_layout"
  12. android:layout_width="match_parent"
  13. android:layout_height="match_parent"
  14. android:fitsSystemWindows="false"
  15. tools:context="com.bentleycarr.mentalmaths.MainActivity">
  16.  
  17. <FrameLayout
  18. android:id="@+id/container"
  19. android:layout_width="match_parent"
  20. android:layout_height="match_parent"
  21. android:background="#f9f9f9"/>
  22.  
  23. <fragment android:id="@+id/navigation_drawer"
  24. android:layout_width="@dimen/navigation_drawer_width"
  25. android:layout_height="match_parent"
  26. android:layout_gravity="start"
  27. android:layout_marginTop="72dp" <!--I want to change this -->
  28. android:name="com.bentleycarr.mentalmaths.NavigationDrawerFragment" />
  29.  
  30. </android.support.v4.widget.DrawerLayout>
  31. </FrameLayout>
  32.  
  33. Process: com.bentleycarr.mentalmaths, PID: 23729
  34. java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bentleycarr.mentalmaths/com.bentleycarr.mentalmaths.MainActivity}: java.lang.ClassCastException: android.support.v4.widget.DrawerLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
  35. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
  36. at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
  37. at android.app.ActivityThread.access$800(ActivityThread.java:135)
  38. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
  39. at android.os.Handler.dispatchMessage(Handler.java:102)
  40. at android.os.Looper.loop(Looper.java:136)
  41. at android.app.ActivityThread.main(ActivityThread.java:5017)
  42. at java.lang.reflect.Method.invokeNative(Native Method)
  43. at java.lang.reflect.Method.invoke(Method.java:515)
  44. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
  45. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
  46. at dalvik.system.NativeStart.main(Native Method)
  47. Caused by: java.lang.ClassCastException: android.support.v4.widget.DrawerLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
  48. at com.bentleycarr.mentalmaths.MainActivity.onCreate(MainActivity.java:55)
  49. at android.app.Activity.performCreate(Activity.java:5231)
  50. at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
  51. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
  52.             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
  53.             at android.app.ActivityThread.access$800(ActivityThread.java:135)
  54.             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
  55.             at android.os.Handler.dispatchMessage(Handler.java:102)
  56.             at android.os.Looper.loop(Looper.java:136)
  57.             at android.app.ActivityThread.main(ActivityThread.java:5017)
  58.             at java.lang.reflect.Method.invokeNative(Native Method)
  59.             at java.lang.reflect.Method.invoke(Method.java:515)
  60.             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
  61.             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
  62.  
  63. FrameLayout root = (FrameLayout) findViewById(R.id.yourID);
  64. FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)root.getLayoutParams();
  65. params.setMargins(left, top, right, bottom);
  66. root.setLayoutParams(params);
  67.  
  68. public class CustomMarginDrawerLayout extends DrawerLayout {
  69. private static final int DRAWER_MARGIN_IN_DP = 48;
  70. private final Context context;
  71.  
  72. public CustomMarginDrawerLayout(Context context) {
  73. super(context);
  74. this.context = context;
  75. }
  76.  
  77. public CustomMarginDrawerLayout(Context context, AttributeSet attrs) {
  78. super(context, attrs);
  79. this.context = context;
  80. }
  81.  
  82. public CustomMarginDrawerLayout(Context context, AttributeSet attrs, int defStyle) {
  83. super(context, attrs, defStyle);
  84. this.context = context;
  85. }
  86.  
  87. @Override
  88. public ViewGroup.LayoutParams generateLayoutParams(AttributeSet attrs) {
  89. ViewGroup.LayoutParams params = super.generateLayoutParams(attrs);
  90. int margin = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, DRAWER_MARGIN_IN_DP, getResources().getDisplayMetrics());
  91. params.width = getScreenWidth(context) - margin;
  92. return params;
  93. }
  94.  
  95. private int getScreenWidth(Context context) {
  96. WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
  97. DisplayMetrics metrics = new DisplayMetrics();
  98. windowManager.getDefaultDisplay().getMetrics(metrics);
  99. return metrics.widthPixels;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement