Android 在适配器中膨胀布局会忽略大小
我试图在listadapter中膨胀此资源:Android 在适配器中膨胀布局会忽略大小,android,android-layout,Android,Android Layout,我试图在listadapter中膨胀此资源: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="200dp" android:layout_height="200dp" android:background="#ff0000" android:padding="@dimen/spacing_micro" >
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#ff0000"
android:padding="@dimen/spacing_micro" >
<View android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="#00ff00"/>
</FrameLayout>
虽然我指定了高度和宽度为200dp的myview
的根,但它完全忽略了大小,结果是大小为0x0
在代码中指定自定义高度和宽度会导致视图采用父视图的大小,再次忽略我的200dp
首选项:
ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) view.getLayoutParams();
layoutParams.height = dpToPx(200);
layoutParams.width = dpToPx(200);
view.setLayoutParams(layoutParams);
如何实现我想要的,将
视图的根设置为200x200dp,其子视图的相对大小与匹配\u parent
?基本上,添加另一个布局并指定该布局的高度。使用适配器视图时,为根布局指定高度不起作用。请尝试使用指定了与父布局匹配的布局宽度和布局高度属性的父布局包装框架布局。然后在该父级中,您可以设置框架布局的大小和重力–尝试使用指定了与父级匹配的布局宽度和布局高度属性的父级布局来包装框架布局。然后,在该父级中,您可以设置框架的大小和重力,这很有效!你知道为什么忽略这个根大小吗?我想这是因为你在膨胀布局而没有附加到根,但不确定,android.view.ViewGroup,boolean)嗯,好的。在ListAdapter
中,您不应该附加到root,这将在以后为您完成。如果你问我的话,这有点奇怪。在这种情况下,可能完全忽略了布局参数。如果合适,请使用建议的解决方法
ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) view.getLayoutParams();
layoutParams.height = dpToPx(200);
layoutParams.width = dpToPx(200);
view.setLayoutParams(layoutParams);