我正在尝试在列表适配器中扩充此资源:
<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>
使用以下代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewGroup view = (ViewGroup) convertView;
if (view == null) {
view = (ViewGroup) LayoutInflater.from(getContext()).inflate(R.layout.myview, parent, false);
}
return view;
}
虽然我将 myview
的根指定为 200dp 的高度和宽度,但它完全忽略了尺寸,结果尺寸为 0x0。
在代码中指定自定义高度和宽度会导致 View 采用父级的大小,再次忽略我的 200dp
偏好:
ViewGroup.LayoutParams layoutParams = (ViewGroup.LayoutParams) view.getLayoutParams();
layoutParams.height = dpToPx(200);
layoutParams.width = dpToPx(200);
view.setLayoutParams(layoutParams);
我怎样才能实现我想要的,让 View
的根为 200x200dp 并且它的子级的大小与 match_parent
相对?
最佳答案
尝试用一些父布局包装您的 FrameLayout,该布局具有指定给 match_parent 的 layout_width 和 layout_height 属性。然后在该父项中,您可以设置 FrameLayout 的大小和重力 –
关于android - 适配器中的膨胀布局忽略大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16299896/