问题如下:
android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
,代码:
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(40, 40);
params.setMargins(10, 10, 10, 0);
linearLayout.addView(image_view, params);
我加载的的确是FrameLayou,为什么还是说我拿Linearlayout转
顺便补充下布局文件:
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/round_dot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal|bottom"
android:orientation="horizontal"
android:paddingBottom="@dimen/dp_10" />
</FrameLayout>
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(40, 40);
params.setMargins(10, 10, 10, 0);
linearLayout.addView(image_view, params);
linearLayout看你的命名应该是一个LinearLayout
linearLayout.addView(image_view, params);这这句话里面的params参数你传进去的是FrameLayout.LayoutParams,所以报错了
应该传LinearLayout.LayoutParams类型的
从代码上看,你想给你的LinearLayout(id="round_dot"添加一个子image_view;
addview(view,layoutparams)中layoutparams是给image_view的;
view= imageview 它的父view是linearlayout 而非 framelayout;
如果我把Linearlayout的父布局改成LinearLayout,再用LinearLayout去添加布局就没问题
android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
原因是:
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(40, 40); //你声明的params是一个FrameLayout.LayoutParams类型的对象
params.setMargins(10, 10, 10, 0);
linearLayout.addView(image_view, params); //而此处却将params用于其他类型的对象 故报错 java和C一样对类型有严格的要求